|
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 - 如果該任務為 null
Future<V> submit(Runnable task,
V result)
task - 要提交的任務result - 要返回的已成功完成任務的結果
RejectedExecutionException - 如果不能安排要執行的任務
NullPointerException - 如果該任務為 null
Future<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。