Java가 스레드 풀을 생성하는 네 가지 방법은 다음과 같습니다. 1. newCachedThreadPool은 캐시 가능한 스레드 풀을 생성합니다. 2. newFixedThreadPool은 고정 길이 스레드 풀을 생성합니다. 3. newScheduledThreadPool은 고정 길이 스레드 풀을 생성합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!