|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.util.concurrent.AbstractExecutorService
public abstract class AbstractExecutorService
提供 ExecutorService 執行方法的預設實作。此類別使用 newTaskFor 返回的 RunnableFuture 實作 submit、invokeAny 和 invokeAll 方法,預設情況下,RunnableFuture 是此套件中提供的 FutureTask 類別。例如,submit(Runnable) 的實作創建了一個關聯 RunnableFuture 類別,該類別將被執行並返回。子類別可以覆寫 newTaskFor 方法,以返回 FutureTask 之外的 RunnableFuture 實作。
擴展範例。以下是一個類別的簡要介紹,該類別定制 ThreadPoolExecutor 使用 CustomTask 類別替代預設 FutureTask:
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.
}
| 建構子摘要 | |
|---|---|
AbstractExecutorService()
|
|
| 方法摘要 | ||
|---|---|---|
|
invokeAll(Collection<? extends Callable<T>> tasks)
執行給定的任務,當所有任務完成時,返回保持任務狀態和結果的 Future 列表。 |
|
|
invokeAll(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
執行給定的任務,當所有任務完成或逾時期滿時(無論哪個首先發生),返回保持任務狀態和結果的 Future 列表。 |
|
|
invokeAny(Collection<? extends Callable<T>> tasks)
執行給定的任務,如果某個任務已成功完成(也就是未拋出異常),則返回其結果。 |
|
|
invokeAny(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
執行給定的任務,如果在給定的逾時期滿前某個任務已成功完成(也就是未拋出異常),則返回其結果。 |
|
protected
|
newTaskFor(Callable<T> callable)
為給定可調用任務返回一個 RunnableFuture。 |
|
protected
|
newTaskFor(Runnable runnable,
T value)
為給定可運行任務和預設值返回一個 RunnableFuture。 |
|
|
submit(Callable<T> task)
提交一個返回值的任務用於執行,返回一個表示任務的未決結果的 Future。 |
|
Future<?> |
submit(Runnable task)
提交一個 Runnable 任務用於執行,並返回一個表示該任務的 Future。 |
|
|
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 |
| 建構子詳細資訊 |
|---|
public AbstractExecutorService()
| 方法詳細資訊 |
|---|
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable,
T value)
runnable - 將被包裹的可運行任務value - 用於所返回的將來任務的預設值
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
callable - 將包裹的可調用任務
public Future<?> submit(Runnable task)
ExecutorService 複製的描述
ExecutorService 中的 submittask - 要提交的任務
public <T> Future<T> submit(Runnable task,
T result)
ExecutorService 複製的描述
ExecutorService 中的 submittask - 要提交的任務result - 返回的結果
public <T> Future<T> submit(Callable<T> task)
ExecutorService 複製的描述如果想立即阻塞任務的等待,則可以使用 result = exec.submit(aCallable).get(); 形式的建構。
註:Executors 類別包括了一組方法,可以轉換某些其他常見的類似於閉套件的物件,例如,將 PrivilegedAction 轉換為 Callable 形式,這樣就可以提交它們了。
ExecutorService 中的 submittask - 要提交的任務
public <T> T invokeAny(Collection<? extends Callable<T>> tasks)
throws InterruptedException,
ExecutionException
ExecutorService 複製的描述
ExecutorService 中的 invokeAnytasks - 任務 collection
InterruptedException - 如果等待時發生中斷
ExecutionException - 如果沒有任務成功完成
public <T> T invokeAny(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
throws InterruptedException,
ExecutionException,
TimeoutException
ExecutorService 複製的描述
ExecutorService 中的 invokeAnytasks - 任務 collectiontimeout - 最長等待時間unit - timeout 參數的時間單位
InterruptedException - 如果等待時發生中斷
ExecutionException - 如果沒有任務成功完成
TimeoutException - 如果在所有任務成功完成之前給定的逾時期滿
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
throws InterruptedException
ExecutorService 複製的描述Future.isDone() 為 true。注意,可以正常地或通過拋出異常來終止已完成 任務。如果正在進行此操作時修改了給定的 collection,則此方法的結果是不確定的。
ExecutorService 中的 invokeAlltasks - 任務 collection
InterruptedException - 如果等待時發生中斷,在這種情況下取消尚未完成的任務。
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
throws InterruptedException
ExecutorService 複製的描述Future.isDone() 為 true。一旦返回後,即取消尚未完成的任務。注意,可以正常地或通過拋出異常來終止已完成 任務。如果此操作正在進行時修改了給定的 collection,則此方法的結果是不確定的。
ExecutorService 中的 invokeAlltasks - 任務 collectiontimeout - 最長等待時間unit - timeout 參數的時間單位
InterruptedException - 如果等待時發生中斷,在這種情況下取消尚未完成的任務
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。