2012-07-21 4 views
1

스레드 풀을 생성하는 데 Executors.newFixedThreadPool을 사용하고 작업 큐가 비어 있고 스레드가 작동하지 않을 때 종료하려고합니다. 어떻게해야합니까?고정 크기 스레드 풀 종료

답변

4

먼저 제출 된 모든 작업을 완료하고 새 작업을 허용하지 않는 동안 풀을 종료해야합니다.

pool.shutdown(); 
pool.awaitTermination(1, TimeUnit.HOUR); 

ExecutorService.shutdown() : 큐가 비어 있고 모든 작업이 완료 될 때까지 그럼 당신은 차단할 수

이전에 제출 한 작업이 실행되지만, 새로운 작업

ExecutorService.awaitTermination()

을 허용되지 않습니다 :

모든 작업이 완료 될 때까지 차단 종료 요청 후 실행 완료.