본문 바로가기

프로그래밍/JAVA

ExecutorService

ExecutorService

상태 : running, shutting down, terminated

 

 

 

> 쓰레드풀 생성

ExecutorService exe = Executors.newCachedThreadPool();

 

고정 크기의 쓰레드풀의 경우 Executors.newFixedThreadPool( int nThreads );

 

ThreadFactory 인터페이스를 사용해 특정 쓰레드를 풀 구성요소로 생성이 가능하다.

class MyThreadFactory implements ThreadFactory {

   public Thread newThread( Runnable r ) {

      return new MyThread(r);

   }

};

 

 

 

> 작업 실행

 

exe.execute( Runnable ); 

해당 작업(Runnable)을 쓰레드풀의 큐에 넣고, 실행 시킨다.

 

 

Future<?> task = exe.submit( Runnalble );

해당 작업의 처리여부 확인을 위해서는 Future 객체를 사용하고, 

submit 메쏘드로 작업을 큐에 넣는다.

 

 

 

> 종료

 

exe.shutdown();

쓰레드풀을 종료하지만 이미 존재하는 작업은 진행.

 

 

exe.shutdownNow();

모든 작업 중지

 

 

> 상태

shutdown() 이후 지정 시간동안 대기하며, 작업 종료시 true

awaitTermination( long, TimeUnit ) 

 

 

> Future<?>

Future<?> f = submit( Runnable ) 수행시 결과를 얻어온다.

 

f.isCancelled() :  작업의 취소여부

f.isDone() : 작업 성공 여부

f.cancel( boolean ) : 작업 취소

f.get() : 작업 결과 얻기 - 블럭킹

'프로그래밍 > JAVA' 카테고리의 다른 글

Apache HttpClient 관련 정리  (0) 2014.03.11
[JAVA TV] MHP 배경이미지 처리  (0) 2013.12.27
[JAVA TV] 타이머  (0) 2013.12.27
[awt] 이미지 읽기~  (0) 2013.12.17
GSON 간단 사용 예  (0) 2013.09.12
CRC16-CCITT crc생성함수  (0) 2012.10.04
정규식 표현  (0) 2012.04.05
클래스 동적 생성,호출 (리플렉션)  (0) 2010.09.04
이클립스(갈릴레오) SVN 설정  (0) 2009.11.12
쓰레드 기본  (0) 2009.11.10