Skip to content

Java.util.concurrent.ExecutorService

ExecutorService

또한 스레드 상태 제어를 지원해줌니다. Furture클래스와는 다르게 서비스에 등록된 모든 스레드를 한꺼번에 제어합니다.

  • shutdown()
  • shutdownNow()
  • awaitTermination(timeout, unit)

shutdown()

익스큐터 서비스에 더이상 새로운 스레드를 등록받지 않게 됨니다. 현재 작동중, 이미 등록된 스레드들은 정상적으로 작동됨니다.

shutdownNow()

실행 대기중이던 스레드들은 취소되어 동작하지 않습니다. 더이상 새로운 스레드를 등록받지 않습니다. 현재 작동중인 스레드들에게 InterruptException을 던짐니다.

awaitTermination(long timeout, TimeUnit unit)

shutdown과 같은 업무를 수행하되 모든 스레드가 종료될때까지 현재 스레드가 블로킹 됨니다. 만약 시간이 다 지나도 스레드가 전부 종료 안되었을 경우. false를 리턴하며 정상적으로 종료되었을경우 true를 리턴합니다.
timeout과 TimeUnit 이 합쳐져 하나의 시간을 표현합니다.

  • ex) TimeUnit .SECOND , TimeUnit.DAYS ...
  • ex) awaitTermination(30, TimeUnit .SECOND);

See also

Favorite site

References


  1. Aroundck.tistory.com_-_java_executor.pdf