Skip to content

Executors

kimahhh edited this page Jul 11, 2023 · 1 revision

참조: https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/concurrent/Executors.html

java.util.concurrent.Executors

스레드 풀을 생성하는 메소드

  • ExecutorService 인터페이스의 인스턴스를 반환

1. newFixedThreadPool(int nThreads)

  • 고정된 크기의 스레드 풀 생성
  • 최대 nThreads 개의 스레드를 동시에 실행

2. newWorkStealingPool(int parallelism)

  • 병렬 수준을 인수로 받아 Work Stealing 알고리즘에 기반한 스레드 풀 생성
  • Work Stealing 알고리즘: 스레드가 다른 스레드의 작업을 가져와서 처리하는 알고리즘

3. newSingleThreadExecutor()

  • 오직 하나의 작업만을 동시에 처리할 수 있는 스레드 풀 생성

4. newCachedThreadPool()

  • 필요에 따라 새로운 스레드를 생성하거나 기존의 스레드를 재활용하는 스레드 풀 생성
  • 고정된 크기를 갖지 않고, 필요에 따라 자동으로 크기 조절

5. newScheduledThreadPool(int corePoolSize)

  • 스케줄링 가능한 스레드 풀 생성
  • 작업을 일정 시간 이후에 실행하거나, 주기적으로 반복하여 실행하는 것을 스케줄링

6. newSingleThreadScheduledExecutor()

  • 스케줄링 기능이 있는 단일 스레드 풀 생성
  • newScheduledThreadPool 메소드와 유사
  • 오직 하나의 스레드만 생성하여 모든 스케줄링 작업이 순차적으로 실행