|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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
中的 submit
task
- 要提交的任務
public <T> Future<T> submit(Runnable task, T result)
ExecutorService
複製的描述
ExecutorService
中的 submit
task
- 要提交的任務result
- 返回的結果
public <T> Future<T> submit(Callable<T> task)
ExecutorService
複製的描述如果想立即阻塞任務的等待,則可以使用 result = exec.submit(aCallable).get(); 形式的建構。
註:Executors
類別包括了一組方法,可以轉換某些其他常見的類似於閉套件的物件,例如,將 PrivilegedAction
轉換為 Callable
形式,這樣就可以提交它們了。
ExecutorService
中的 submit
task
- 要提交的任務
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
ExecutorService
複製的描述
ExecutorService
中的 invokeAny
tasks
- 任務 collection
InterruptedException
- 如果等待時發生中斷
ExecutionException
- 如果沒有任務成功完成public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService
複製的描述
ExecutorService
中的 invokeAny
tasks
- 任務 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
中的 invokeAll
tasks
- 任務 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
中的 invokeAll
tasks
- 任務 collectiontimeout
- 最長等待時間unit
- timeout 參數的時間單位
InterruptedException
- 如果等待時發生中斷,在這種情況下取消尚未完成的任務
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。