JAVA이야기
Future클래스와 ExecutorService
НooпeУ
2011. 9. 24. 16:48
ExecutorService exec = Executors.newSingleThread(new FactoryThread());
Future<T> f = exec.submit(Callable<T> call);
T result = f.get();
callable과 runnable의 차이점
T callable()
void runnable()
callable은 리턴값이 있고, runnable은 리턴값이 없다.
exec는 queue를 가지고 있다.
exec.sumbit()은 스레드를 queue에 넣는다.
이 스레드는 언제실행될 지 모른다. 그래서 이 스레드의 결과값에 대한 정보를 저장하기 위해 Future클래스라고 명명
f.get() 메소드를 호출하면 Callable의 작업이 실행될 때까지 블로킹되며, 완료되면 리턴한다.
즉 리턴값을 뱉을때까지 기다린다라는 뜻.
Future<T> f = exec.submit(Callable<T> call);
T result = f.get();
callable과 runnable의 차이점
T callable()
void runnable()
callable은 리턴값이 있고, runnable은 리턴값이 없다.
exec는 queue를 가지고 있다.
exec.sumbit()은 스레드를 queue에 넣는다.
이 스레드는 언제실행될 지 모른다. 그래서 이 스레드의 결과값에 대한 정보를 저장하기 위해 Future클래스라고 명명
f.get() 메소드를 호출하면 Callable의 작업이 실행될 때까지 블로킹되며, 완료되면 리턴한다.
즉 리턴값을 뱉을때까지 기다린다라는 뜻.