> Java > Java베이스 > 본문

Java에서 스레드 풀을 만드는 네 가지 방법은 무엇입니까?

hzc
풀어 주다: 2020-07-04 15:44:43
원래의
11291명이 탐색했습니다.

Java가 스레드 풀을 생성하는 네 가지 방법은 다음과 같습니다. 1. newCachedThreadPool은 캐시 가능한 스레드 풀을 생성합니다. 2. newFixedThreadPool은 고정 길이 스레드 풀을 생성합니다. 3. newScheduledThreadPool은 고정 길이 스레드 풀을 생성합니다.

Java에서 스레드 풀을 만드는 네 가지 방법은 무엇입니까?

Java는 Executor를 통해 다음과 같은 4개의 스레드 풀을 제공합니다.
newCachedThreadPool은 스레드 풀의 길이가 처리 요구 사항을 초과하는 경우 재활용이 없는 경우 유휴 스레드를 유연하게 재활용할 수 있습니다. 새로운 스레드가 생성됩니다.

newFixedThreadPool은 최대 동시 스레드 수를 제어할 수 있는 고정 길이 스레드 풀을 생성합니다. 초과 스레드는 대기열에서 대기합니다.

newScheduledThreadPool은 예약되고 주기적인 작업 실행을 지원하기 위해 고정 길이 스레드 풀을 생성합니다.

newSingleThreadExecutor는 작업을 실행하기 위해 고유한 작업자 스레드만 사용하는 단일 스레드 스레드 풀을 생성하여 모든 작업이 지정된 순서(FIFO, LIFO, 우선 순위)로 실행되도록 보장합니다.

자세한 내용은 블로거 블로그를 참조하세요. Java 동시 프로그래밍: 스레드 풀 사용

1.newCachedThreadPool 여기 스레드 풀은 스레드가 작업을 완료하면 대신 할당할 작업을 완료할 수 있습니다. 새로운 스레드를 생성하는 것입니다.

public static void main(String[] args) {  
        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();  
        for (int i = 0; i < 10; i++) {  
            final int index = i;  
            try {  
                Thread.sleep(10);  
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
            cachedThreadPool.execute(new Runnable() {  
                public void run() {  
                    System.out.println(index);  
                }  
            });  
        }  
    }
로그인 후 복사

2.newFixedThreadPool

public static void main(String[] args) {  
        ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);  
        for (int i = 0; i < 10; i++) {  
            final int index = i;  
            fixedThreadPool.execute(new Runnable() {  
                public void run() {  
                    try {  
                        System.out.println(index);  
                        Thread.sleep(10);  
                    } catch (InterruptedException e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
    }
로그인 후 복사

3.newScheduledThreadPoo

public static void main(String[] args) {  
        ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);  
        for (int i = 0; i < 10; i++) {  
            scheduledThreadPool.schedule(new Runnable() {  
                public void run() {  
                    System.out.println("delay 3 seconds");  
                }  
            }, 3, TimeUnit.SECONDS);  
        }  
  
    }
로그인 후 복사

4.newSingleThreadExecutor는 스레드 작업을 순차적으로 실행합니다. 그러나 단일 스레드와 달리 이 스레드 풀은 스레드가 종료된 후에는 하나의 스레드만 가질 수 있습니다.

public static void main(String[] args) {  
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();  
        for (int i = 0; i < 10; i++) {  
            final int index = i;  
            singleThreadExecutor.execute(new Runnable() {  
                public void run() {  
/*                  System.out.println(index);*/  
                    try {  
                        System.out.println(index);  
                        Thread.sleep(2000);  
                    } catch (InterruptedException e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
    }
로그인 후 복사
추천 튜토리얼: "

java tutorial"

위 내용은 Java에서 스레드 풀을 만드는 네 가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿