JavaTM Platform
Standard Ed. 6

java.util.concurrent
클래스 AbstractExecutorService

java.lang.Object 
  상위를 확장 java.util.concurrent.AbstractExecutorService
모든 구현된 인터페이스:
Executor , ExecutorService
직계의 기존의 서브 클래스:
ThreadPoolExecutor


public abstract class AbstractExecutorService
extends Object
implements ExecutorService

ExecutorService 실행 메소드의 디폴트 구현을 제공합니다. 이 클래스는, 이 패키지로 제공되는 FutureTask 클래스가 디폴트인 newTaskFor 에 의해 반환되는 RunnableFuture 를 사용해,submit,invokeAny, 및 invokeAll 메소드를 구현합니다. 예를 들어,submit(Runnable) 의 구현에 의해 관련하는 RunnableFuture 가 작성되어 이것이 실행되어 결과가 돌려주어집니다. 서브 클래스는,FutureTask 이외의 RunnableFuture 구현을 돌려주도록,newTaskFor 메소드를 오버라이드(override) 할 수가 있습니다.

확장예. 여기에서는, 디폴트의 FutureTask 는 아니고 CustomTask 클래스를 사용해 ThreadPoolExecutor 를 커스터마이즈 하는 클래스의 개략을 나타냅니다.

 public class CustomThreadPoolExecutor extends ThreadPoolExecutor {

   static class CustomTask<V> implements RunnableFuture<V> {...}

   protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) {
       return new CustomTask<V>(c);
   }
   protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) {
       return new CustomTask<V>(r, v);
   }
   // ... add constructors, etc.
 }
 

도입된 버젼:
1.5

생성자 의 개요
AbstractExecutorService ()
           
 
메소드의 개요
<T> List <Future <T>>
invokeAll (Collection <? extends Callable <T>> tasks)
          지정된 태스크를 실행해, 모두 완료하면(자), 상태와 결과를 포함한 Future 의 리스트를 돌려줍니다.
<T> List <Future <T>>
invokeAll (Collection <? extends Callable <T>> tasks, long timeout, TimeUnit  unit)
          지정된 태스크를 실행해, 모든 것이 완료할까 마감 시간이 되는지, 그 어느쪽이든가 최초로 발생한 시점에서, 상태와 결과를 포함한 Future 의 리스트를 돌려줍니다.
<T> T
invokeAny (Collection <? extends Callable <T>> tasks)
          지정된 태스크를 실행해, 예외를 throw 하지 않고 정상적으로 완료한 태스크가 존재하는 경우는, 그 결과를 돌려줍니다.
<T> T
invokeAny (Collection <? extends Callable <T>> tasks, long timeout, TimeUnit  unit)
          지정된 태스크를 실행해, 타임 아웃이 경과하기 전에 예외를 throw 하지 않고 정상적으로 완료한 태스크가 존재하는 경우는, 그 결과를 돌려줍니다.
protected
<T> RunnableFuture <T>
newTaskFor (Callable <T> callable)
          지정된 호출 가능 태스크의 RunnableFuture 를 돌려줍니다.
protected
<T> RunnableFuture <T>
newTaskFor (Runnable  runnable, T value)
          지정된 실행 가능 태스크 및 디폴트 값의 RunnableFuture 를 돌려줍니다.
<T> Future <T>
submit (Callable <T> task)
          값을 돌려주는 실행용 태스크를 송신해, 보류 상태의 태스크 결과를 나타내는 Future 를 돌려줍니다.
 Future <? > submit (Runnable  task)
          실행용의 Runnable 태스크를 송신해, 그 태스크를 나타내는 Future 를 돌려줍니다.
<T> Future <T>
submit (Runnable  task, T result)
          실행용의 Runnable 태스크를 송신해, 그 태스크를 나타내는 Future 를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 
인터페이스 java.util.concurrent. ExecutorService 로부터 상속된 메소드
awaitTermination , isShutdown , isTerminated , shutdown , shutdownNow
 
인터페이스 java.util.concurrent. Executor 로부터 상속된 메소드
execute
 

생성자 의 상세

AbstractExecutorService

public AbstractExecutorService()
메소드의 상세

newTaskFor

protected <T> RunnableFuture <T> newTaskFor(Runnable  runnable,
                                           T value)
지정된 실행 가능 태스크 및 디폴트 값의 RunnableFuture 를 돌려줍니다.

파라미터:
runnable - 랩 되는 실행 가능 태스크
value - 반환되는 Future 의 디폴트 값
반환값:
실행시에 기본이 되는 실행 가능 태스크를 실행해,Future 로서 지정된 값을 그 결과적으로 생성해, 기본이 되는 태스크의 취소를 제공하는 RunnableFuture
도입된 버젼:
1.6

newTaskFor

protected <T> RunnableFuture <T> newTaskFor(Callable <T> callable)
지정된 호출 가능 태스크의 RunnableFuture 를 돌려줍니다.

파라미터:
callable - 랩 되는 호출 가능 태스크
반환값:
실행시에 기본이 되는 호출 가능 태스크를 호출해,Future 로서 호출해 가능 태스크의 결과를 그 결과적으로 생성해, 기본이 되는 태스크의 취소를 제공하는 RunnableFuture
도입된 버젼:
1.6

submit

public Future <? > submit(Runnable  task)
인터페이스 ExecutorService 의 기술:
실행용의 Runnable 태스크를 송신해, 그 태스크를 나타내는 Future 를 돌려줍니다. Future 의 get 메소드는, 정상적으로 완료한 시점에서 null 를 돌려줍니다.

정의:
인터페이스 ExecutorService 내의 submit
파라미터:
task - 송신하는 태스크
반환값:
태스크의 보류 완료를 나타내는 Future

submit

public <T> Future <T> submit(Runnable  task,
                            T result)
인터페이스 ExecutorService 의 기술:
실행용의 Runnable 태스크를 송신해, 그 태스크를 나타내는 Future 를 돌려줍니다. Future 의 get 메소드는, 정상적으로 완료한 시점에서 지정된 결과를 돌려줍니다.

정의:
인터페이스 ExecutorService 내의 submit
파라미터:
task - 송신하는 태스크
result - 돌려주는 결과
반환값:
태스크의 보류 완료를 나타내는 Future

submit

public <T> Future <T> submit(Callable <T> task)
인터페이스 ExecutorService 의 기술:
값을 돌려주는 실행용 태스크를 송신해, 보류 상태의 태스크 결과를 나타내는 Future 를 돌려줍니다. Future 의 get 메소드는, 정상적으로 완료한 시점에서 태스크의 결과를 돌려줍니다.

태스크의 대기를 즉시 블록 하는 경우는,result = exec.submit(aCallable). get(); 의 형식의 구축을 사용할 수 있습니다.

주:Executors 클래스에는, 크로 전기밥통을 닮은 다른 일반 객체를 변환할 수 있는 메소드 세트가 포함됩니다. 예를 들어,PrivilegedActionCallable 형식으로 변환해, 송신 가능하게 할 수가 있습니다.

정의:
인터페이스 ExecutorService 내의 submit
파라미터:
task - 송신하는 태스크
반환값:
태스크의 보류 완료를 나타내는 Future

invokeAny

public <T> T invokeAny(Collection <?  extends Callable <T>> tasks)
            throws InterruptedException ,
                   ExecutionException 
인터페이스 ExecutorService 의 기술:
지정된 태스크를 실행해, 예외를 throw 하지 않고 정상적으로 완료한 태스크가 존재하는 경우는, 그 결과를 돌려줍니다. 정상적으로 돌아온 시점, 또는 예외가 반환된 시점에서, 완료하고 있지 않는 태스크는 삭제됩니다. 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우, 이 메소드의 결과는 정의되고 있지 않습니다.

정의:
인터페이스 ExecutorService 내의 invokeAny
파라미터:
tasks - 태스크의 컬렉션
반환값:
태스크의 어느 쪽인가에 따라 반환되는 결과
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ExecutionException - 정상적으로 완료한 태스크가 없는 경우

invokeAny

public <T> T invokeAny(Collection <?  extends Callable <T>> tasks,
                       long timeout,
                       TimeUnit  unit)
            throws InterruptedException ,
                   ExecutionException ,
                   TimeoutException 
인터페이스 ExecutorService 의 기술:
지정된 태스크를 실행해, 타임 아웃이 경과하기 전에 예외를 throw 하지 않고 정상적으로 완료한 태스크가 존재하는 경우는, 그 결과를 돌려줍니다. 정상적으로 돌아온 시점, 또는 예외가 반환된 시점에서, 완료하고 있지 않는 태스크는 삭제됩니다. 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우, 이 메소드의 결과는 정의되고 있지 않습니다.

정의:
인터페이스 ExecutorService 내의 invokeAny
파라미터:
tasks - 태스크의 컬렉션
timeout - 대기하는 최장 시간
unit - timeout 인수의 시간 단위
반환값:
태스크의 어느 쪽인가에 따라 반환되는 결과.
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ExecutionException - 정상적으로 완료한 태스크가 없는 경우
TimeoutException - 태스크가 정상적으로 완료하기 전에, 지정된 타임 아웃이 경과했을 경우

invokeAll

public <T> List <Future <T>> invokeAll(Collection <?  extends Callable <T>> tasks)
                          throws InterruptedException 
인터페이스 ExecutorService 의 기술:
지정된 태스크를 실행해, 모두 완료하면(자), 상태와 결과를 포함한 Future 의 리스트를 돌려줍니다. 반환되는 리스트의 각 요소에 대해서 Future.isDone()true 가 됩니다. 「완료했다」태스크는, 일반적으로 대로나 예외를 throw 하는 것으로 종료하고 있습니다. 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우, 이 메소드의 결과는 정의되고 있지 않습니다.

정의:
인터페이스 ExecutorService 내의 invokeAll
파라미터:
tasks - 태스크의 컬렉션
반환값:
태스크를 나타내는 Future 의 리스트. 리스트의 순서는, 지정된 태스크 리스트의 반복자에 의해 생성되는 순서와 같고, 각 태스크는 완료필이다.
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우. 이 경우, 미완료의 태스크는 삭제된다.

invokeAll

public <T> List <Future <T>> invokeAll(Collection <?  extends Callable <T>> tasks,
                                     long timeout,
                                     TimeUnit  unit)
                          throws InterruptedException 
인터페이스 ExecutorService 의 기술:
지정된 태스크를 실행해, 모든 것이 완료할까 마감 시간이 되는지, 그 어느쪽이든가 최초로 발생한 시점에서, 상태와 결과를 포함한 Future 의 리스트를 돌려줍니다. 반환되는 리스트의 각 요소에 대해서 Future.isDone()true 가 됩니다. 반환된 시점에서, 완료하고 있지 않는 태스크는 삭제됩니다. 「완료했다」태스크는, 일반적으로 대로나 예외를 throw 하는 것으로 종료하고 있습니다. 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우, 이 메소드의 결과는 정의되고 있지 않습니다.

정의:
인터페이스 ExecutorService 내의 invokeAll
파라미터:
tasks - 태스크의 컬렉션
timeout - 대기하는 최장 시간
unit - timeout 인수의 시간 단위
반환값:
태스크를 나타내는 Future 의 리스트. 리스트의 순서는, 지정된 태스크 리스트의 반복자에 의해 생성되는 순서와 같게 된다. 오퍼레이션이 타임 아웃이 되지 않았던 경우, 각 태스크는 완료한다. 오퍼레이션이 타임 아웃이 되었을 경우, 태스크의 일부는 완료하지 않는다.
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우. 이 경우, 미완료의 태스크는 삭제된다

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.