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
- 자바 스레드 관리 클래스 ExecutorService.
- Java Concurrency: Executor와 Callable/Future
- Thread pool 과 hashmap 자료
- Java Thread Pool 좋은 글(Object Pool Control)
- Java ThreadPool Api Sample
- JAVA ThreadPool에 대한 설명
- 자바 쓰레드 풀(Thread Pool) 구현
- (Java) ExecutorService, Thread 를 이용한 스레드 사용
- Android Developer: ExecutorService reference
- Java ThreadPool Api Sample
- Java Thread Pool 예제
- [추천] Java 병렬 프로그래밍: 작업 실행 (ExecutorService에 대한 설명) 1
- Java Concurrency: Executor와 Callable/Future
- (Concurrency) - ExecutorService 의 awaitTermination() 사용하기
- 멀티스레드 관련 예제 (ExecutorService)
References
-
Aroundck.tistory.com_-_java_executor.pdf ↩