|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface CompletionService<V>
將生產新的非同步任務與使用已完成任務的結果分離開來的服務。生產者 submit 執行的任務。使用者 take 已完成的任務,並按照完成這些任務的順序處理它們的結果。例如,CompletionService 可以用來管理非同步 IO ,執行讀操作的任務作為程序或系統的一部分提交,然後,當完成讀操作時,會在程序的不同部分執行其他操作,執行操作的順序可能與所請求的順序不同。
通常,CompletionService 依賴於一個單獨的 Executor
來實際執行任務,在這種情況下,CompletionService 只管理一個內部完成佇列。ExecutorCompletionService
類別提供了此方法的一個實作。
記憶體一致性效果:執行緒中向 CompletionService
提交任務之前的操作 happen-before 該任務執行的操作,後者依次 happen-before 緊跟在從對應 take()
成功返回的操作。
方法摘要 | |
---|---|
Future<V> |
poll()
獲取並移除表示下一個已完成任務的 Future,如果不存在這樣的任務,則返回 null。 |
Future<V> |
poll(long timeout,
TimeUnit unit)
獲取並移除表示下一個已完成任務的 Future,如果目前不存在這樣的任務,則將等待指定的時間(如果有必要)。 |
Future<V> |
submit(Callable<V> task)
提交要執行的值返回任務,並返回表示掛起的任務結果的 Future。 |
Future<V> |
submit(Runnable task,
V result)
提交要執行的 Runnable 任務,並返回一個表示任務完成的 Future,可以提取或輪詢此任務。 |
Future<V> |
take()
獲取並移除表示下一個已完成任務的 Future,如果目前不存在這樣的任務,則等待。 |
方法詳細資訊 |
---|
Future<V> submit(Callable<V> task)
task
- 要提交的任務
RejectedExecutionException
- 如果不能安排要執行的任務
NullPointerException
- 如果該任務為 nullFuture<V> submit(Runnable task, V result)
task
- 要提交的任務result
- 要返回的已成功完成任務的結果
RejectedExecutionException
- 如果不能安排要執行的任務
NullPointerException
- 如果該任務為 nullFuture<V> take() throws InterruptedException
InterruptedException
- 如果在等待時被中斷Future<V> poll()
Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException
timeout
- 放棄之前需要等待的時間長度,以 unit 為時間單位unit
- 確定如何解釋 timeout 參數的 TimeUnit
InterruptedException
- 如果在等待時被中斷
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。