본문 바로가기

안드로이드

Executor

Executor - 자바에서 제공하는 스레드 관련 프레임워크

1. 스레드에서 실행되기를 기다리는 태스크 수를 제어하는 작업자 스레드풀과 큐를 설정
2. 완료되는 스레드를 기다리고 결과를 가져온다

(1) 스레드 풀 기능

newFixedThreadPool(n), newCachedThreadPool, newSingleThreadExecutor
var executor = ThreadPoolExecutor(풀크기,생존유지기간,큐유형);
스레드 풀크기 -> cpu갯수기준이좋다 ->동시에 실행될수있는 최대의 테스크 갯수

(2) 스레드풀 중단

shutdown: 새작업을 거부하며 대기중인 테스크는 처리
shutdownnow: 당장 스레드풀중단

(3) callable 인터페이스 : 테스크결과를 가져오고 테스크를 관리한다

(4) Future : 미래에 실행되는 callable결과값을 구할때 사용된다

Future<object> future = executor.submit(new callable<object>{
public object call() throw Exeception {
Object object = dolong~~
return object;
}
}
Object result = future.get();

(5) invokeAll : 동시 여러개의 태스크 실행후 모든 태스크가 완료되길 대기한다
(6) invokeAny : 동시 여러개의 태스크 실행후 첫번째 태스크 결과 반환, 나머지 태스크 무시