본문 바로가기

Programming/JAVA

멀티 스레드(9) - 스레드 풀 4 : 블로킹 방식의 작업 완료 통보 1

 

 

작업 완료 통보는 블로킹 방식과 콜백 방식으로 나뉩니다. 우선, 블로킹 방식에 대해서 먼저 살펴보도록 하겠습니다. 

 

ExecutorService의 submit( ) 메서드는 매개값으로 준 Runnable 또는 Callable 작업을 스레드풀의 작업 큐에 저장하고 즉시 Future 객체를 리턴하게 됩니다. 

 

리턴 타입 메서드명(파라미터) 설명
Future<?> submit(Runnable task) - Runnable 또는 Callable을 작업 큐에 저장
- 리턴된 Future를 통해 작업 처리 결과를 얻음
Future<V> submit(Runnable task, V resutl)
Future<V> submit(Callable<V> task)

 

 

여기서 Future 객체는 작업 결과가 아니라, 작업이 완료될 때까지 기다렸다가(=지연, 즉 블로킹되었다가) 최종 결과를 얻는데 사용됩니다. 그래서 Future를 지연 완료(pending completion) 객체라고 칭합니다. 

 

Future의 get( ) 메서드를 호출하면 스레드가 작업을 완료할 때까지 블로킹되었다가 작업을 완료하면 처리 결과를 리턴하게 됩니다. 이것이 블로킹을 사용하는 작업 완료 통보 방식입니다. 

 

 

 

 

nozeroslope님의
글이 좋았다면 응원을 보내주세요!