JAVA/Thread

JAVA Thread Futher, Callable, Executor

반응형

Futher, Callable, Executor

  • 스레드가 필요할  스레드를 생성하여 제공하는 ExecutorService
  • Callabe 객체를 생성하여 Executor 추가하여 객체를 순차적으로 실행한  Future 클래스로 결과를 반환 받는다.
  • Callable 객체는 인터페이스이고 어떤 항목이든 담을  있는 call() 메소드 하나만 포함한다.

EX) Callable 객체

Class findmaxTask implements Callable<Integer>{

 

FindMaxTas(int[] data, int start, int end){

Super(data,start,end);

}

 

Public Integer getMax(){

생략

}

}

 

MultiThreadedMaxFinder 객체

 

Public class MultithreadedMaxFinder {

 

FindMaxTask task1 = new FindMaxTask(data, 0, 100);

FindMaxTask task2 = new FindMaxTask(data, 1000, 1000);

 

ExecutorService service = Executor.newFixedThreadPool(2);//작업을 두개로 분할

 

//Future 결과값 반환

Future<Integer> future1 = service.submit(task1);

Future<Integer> future2 = service.submit(task2);

 

Return Math.max(future1.get(), future2.get());

// future1.get() 호출될   메소드는 먼저 FindMaxTask 끝날때까지 대기한다그러고 난후 future2.get() 호출 한다 개의 스레드가 정상적으로 종료된 후에 결과값 Max 리턴한다.

}

반응형

'JAVA > Thread' 카테고리의 다른 글

Thread 크리티컬 세션  (0) 2016.12.21
java thread pool 소개  (0) 2016.12.21
JAVA 스레드 스케줄링  (0) 2016.12.21
Thread 동기화 문제  (0) 2016.12.21
Thread 폴링 방식  (0) 2016.12.21