JavaTM Platform
Standard Ed. 6

java.util.concurrent
클래스 FutureTask<V>

java.lang.Object 
  상위를 확장 java.util.concurrent.FutureTask<V>
형태 파라미터:
V - 이 FutureTask 의 get 메소드로 반환되는 결과형
모든 구현된 인터페이스:
Runnable , Future <V>, RunnableFuture <V>


public class FutureTask<V>
extends Object
implements RunnableFuture <V>

취소해 가능한 비동기 계산입니다. 이 클래스는 Future 의 베이스 구현을 제공해, 계산의 개시와 취소해, 계산이 완료했는지 어떠했는지의 문의, 계산 결과의 취득등을 실시하는 메소드가 있습니다. 결과는, 계산의 완료시에게만 취득할 수 있습니다. 계산이 아직 완료하고 있지 않는 동안은 get 메소드가 블록 합니다. 계산이 완료하면(자), 그 계산의 재개 또는 취소는 할 수 없습니다.

FutureTask 는,Callable 객체나 Runnable 객체를 랩 하기 위해서 사용할 수 있습니다. FutureTaskRunnable 를 구현하기 위해(때문에),FutureTaskExecutor 에 송신해 실행할 수가 있습니다.

스탠드얼론 클래스로서 기능할 뿐만 아니라, 이 클래스에서는, 커스터마이즈 한 태스크 클래스의 작성시에 편리한 protected 기능을 제공합니다.

도입된 버젼:
1.5

생성자 의 개요
FutureTask (Callable <V > callable)
          지정된 Callable 를 실행시에 실행하는 FutureTask 를 작성합니다.
FutureTask (Runnable  runnable, V  result)
          지정된 실행 가능 태스크를 실행시에 실행해, 한편 정상적으로 완료하면(자) 지정된 결과를 get 로 돌려주는 FutureTask 를 작성합니다.
 
메소드의 개요
 boolean cancel (boolean mayInterruptIfRunning)
          이 태스크의 실행의 취소를 시도합니다.
protected  void done ()
          이 태스크 상태가 (정상적으로, 또는 취소해에 의해) isDone 에 바뀔 때 불려 가는 protected 메소드입니다.
 V get ()
          필요에 따라서 계산이 완료할 때까지 대기해, 그 후, 계산 결과를 가져옵니다.
 V get (long timeout, TimeUnit  unit)
          필요에 따라서, 최대로 지정된 시간, 계산이 완료할 때까지 대기해, 그 후, 계산 결과가 이용 가능한 경우는 결과를 가져옵니다.
 boolean isCancelled ()
          이 태스크가 정상적으로 완료하기 전에 삭제되었을 경우는 true 를 돌려줍니다.
 boolean isDone ()
          이 태스크가 완료했을 경우는 true 를 돌려줍니다.
 void run ()
          삭제되지 않으면, 이 Future 에 계산 결과를 설정합니다.
protected  boolean runAndReset ()
          결과를 설정하지 않고 계산을 실행해, 이 Future 를 초기 상태에 리셋 합니다.
protected  void set (V  v)
          이 Future 가 설정 끝난 경우 또는 삭제되었을 경우를 제외해, 이 Future 의 결과로 지정된 값을 설정합니다.
protected  void setException (Throwable  t)
          이 Future 가 설정 끝난 경우 또는 삭제되었을 경우를 제외해, 이 Future 가 ExecutionException 과 그 이유로서 지정된 throw 가능 객체를 보고하게 됩니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

FutureTask

public FutureTask(Callable <V > callable)
지정된 Callable 를 실행시에 실행하는 FutureTask 를 작성합니다.

파라미터:
callable - 호출해 가능한 태스크
예외:
NullPointerException - 호출 가능 레이아웃이 null 의 경우

FutureTask

public FutureTask(Runnable  runnable,
                  V  result)
지정된 실행 가능 태스크를 실행시에 실행해, 한편 정상적으로 완료하면(자) 지정된 결과를 get 로 돌려주는 FutureTask 를 작성합니다.

파라미터:
runnable - 실행 가능한 태스크
result - 정상적으로 완료했을 경우에 돌려주는 결과. 특정의 결과가 필요없는 경우는,Future<? > f = new FutureTask<Object>(runnable, null) 라고 하는 형식의 구축을 사용하는 것을 검토하는 것
예외:
NullPointerException - runnable 가 null 의 경우
메소드의 상세

isCancelled

public boolean isCancelled()
인터페이스 Future 의 기술:
이 태스크가 정상적으로 완료하기 전에 삭제되었을 경우는 true 를 돌려줍니다.

정의:
인터페이스 Future <V > 내의 isCancelled
반환값:
이 태스크가 완료하기 전에 삭제되었을 경우는 true

isDone

public boolean isDone()
인터페이스 Future 의 기술:
이 태스크가 완료했을 경우는 true 를 돌려줍니다. 완료의 이유는, 정상 종료, 예외, 취소등이 있습니다만, 어느 경우도 이 메소드는 true 를 돌려줍니다.

정의:
인터페이스 Future <V > 내의 isDone
반환값:
이 태스크가 완료했을 경우는 true

cancel

public boolean cancel(boolean mayInterruptIfRunning)
인터페이스 Future 의 기술:
이 태스크의 실행의 취소를 시도합니다. 태스크가 벌써 완료하고 있었을 경우, 벌써 삭제되고 있었을 경우, 또는 그 외의 이유로써 취소할 수 없었던 경우, 이 시도는 실패합니다. 그 시도가 성공해,cancel 의 호출시에 이 태스크가 기동하지 않았던 경우, 이 태스크가 실행될 것은 없습니다. 태스크가 기동 끝난 경우는, 이 태스크의 정지를 시도할 때, 이 태스크를 실행하고 있는 thread에 끼어들 필요가 있을지 어떨지는,mayInterruptIfRunning 파라미터로 판단합니다.

이 메소드가 복귀한 뒤, 이후의 Future.isDone() 의 호출에서는 항상 true 가 돌려주어집니다. 이 메소드가 true 를 돌려주었을 경우, 이후의 Future.isCancelled() 의 호출에서는 항상 true 가 돌려주어집니다.

정의:
인터페이스 Future <V > 내의 cancel
파라미터:
mayInterruptIfRunning - 이 태스크를 실행하고 있는 thread에 끼어들 필요가 있는 경우는 true, 그렇지 않은 경우는, 실행중의 태스크를 완료할 수 있다
반환값:
태스크를 취소할 수 없었던 경우는 false (일반적으로은 태스크가 벌써 정상적으로 완료하고 있었기 때문에), 그렇지 않은 경우는 true

get

public V  get()
      throws InterruptedException ,
             ExecutionException 
인터페이스 Future 의 기술:
필요에 따라서 계산이 완료할 때까지 대기해, 그 후, 계산 결과를 가져옵니다.

정의:
인터페이스 Future <V > 내의 get
반환값:
계산 결과
예외:
CancellationException - 계산이 삭제되었을 경우
InterruptedException - 대기중에 현재의 thread로 인터럽트가 발생했을 경우
ExecutionException - 계산으로 예외가 throw 되었을 경우

get

public V  get(long timeout,
             TimeUnit  unit)
      throws InterruptedException ,
             ExecutionException ,
             TimeoutException 
인터페이스 Future 의 기술:
필요에 따라서, 최대로 지정된 시간, 계산이 완료할 때까지 대기해, 그 후, 계산 결과가 이용 가능한 경우는 결과를 가져옵니다.

정의:
인터페이스 Future <V > 내의 get
파라미터:
timeout - 대기하는 최장 시간
unit - timeout 인수의 시간 단위
반환값:
계산 결과
예외:
CancellationException - 계산이 삭제되었을 경우
InterruptedException - 대기중에 현재의 thread로 인터럽트가 발생했을 경우
ExecutionException - 계산으로 예외가 throw 되었을 경우
TimeoutException - 대기가 타임 아웃이 되었을 경우

done

protected void done()
이 태스크 상태가 (정상적으로, 또는 취소해에 의해) isDone 에 바뀔 때 불려 가는 protected 메소드입니다. 디폴트 구현은 아무것도 실행하지 않습니다. 서브 클래스는, 이 메소드를 오버라이드(override) 해, 완료 콜백의 호출해 또는 등록의 처리를 실행하는 일이 있습니다. 이 메소드의 구현 내부에서 상태를 조회해, 이 태스크가 삭제되지 않은지 어떤지를 확인할 수가 있습니다.


set

protected void set(V  v)
이 Future 가 설정 끝난 경우 또는 삭제되었을 경우를 제외해, 이 Future 의 결과로 지정된 값을 설정합니다. 이 메소드는, 계산의 정상 완료시에 run 메소드로 내부적으로 불려 갑니다.

파라미터:
v - 치

setException

protected void setException(Throwable  t)
이 Future 가 설정 끝난 경우 또는 삭제되었을 경우를 제외해, 이 Future 가 ExecutionException 와 그 이유로서 지정된 throw 가능 객체를 보고하게 됩니다. 이 메소드는, 계산의 실패시에 run 메소드로 내부적으로 불려 갑니다.

파라미터:
t - 실패의 원인

run

public void run()
삭제되지 않으면, 이 Future 에 계산 결과를 설정합니다.

정의:
인터페이스 Runnable 내의 run
정의:
인터페이스 RunnableFuture <V > 내의 run
관련 항목:
Thread.run()

runAndReset

protected boolean runAndReset()
결과를 설정하지 않고 계산을 실행해, 이 Future 를 초기 상태에 리셋 합니다. 계산시에 예외가 발생했을 경우 또는 계산이 삭제되었을 경우는 실패합니다. 본래, 여러 차례 실행되는 태스크와 함께 사용하기 위해서 설계되고 있습니다.

반환값:
실행과 리셋에 성공했을 경우는 true

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 도 참조해 주세요.