讀書筆記:排序的執行器
package v1ch14.ThreadPoolTest;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* @version 2010-10-18 下午05:11:11
* @author DaWei han
* @EMAIL handawei_1@126.com
*/
public class MyPoolTest {
/**
* @param args
* @throws ExecutionException
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException, ExecutionException {
//構造一個執行緒池
ExecutorService executor=Executors.newCachedThreadPool();
//構造一個順序的執行器
ExecutorCompletionService<Integer> service=new ExecutorCompletionService<Integer>(executor);
List<Callable<Integer>> taks=getTasks();
for(Callable<Integer> call:taks)
{
//執行任務
service.submit(call);
}
for(int i=0;i<taks.size();i++)
{
//獲得任務結果。它們是按結果的快慢排序的。
service.take().get();
}
//上面的執行緒池順序服務是為了優化下面的執行緒池服務,因為下面的第一個任務可能很耗時,那麼後面的就必須等待。
List<Future<Integer>> results= executor.invokeAll(taks);
for(Future<Integer> result:results)
{
result.get();
}
}
public static List<Callable<Integer>> getTasks()
{
return null;
}
}
相關文章
- 【讀書筆記】Postgresql連線方法及執行器筆記SQL
- 執行緒間協作-《thinking in java》讀書筆記(一)執行緒ThinkingJava筆記
- 《高效能JavaScript》讀書筆記①載入和執行JavaScript筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- 《CLR Via C#》讀書筆記:26.執行緒基礎C#筆記執行緒
- 《CLR Via C#》讀書筆記:24.執行時序列化C#筆記
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- Cucumber讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 讀書筆記3筆記
- 五月的讀書筆記筆記
- 《孩子的大腦》讀書筆記筆記
- js高程讀書筆記JS筆記
- 《論語》讀書筆記筆記
- 《重構》讀書筆記筆記
- PMBook讀書筆記(一)筆記
- 讀書筆記【JS 權威指南】14.1 計時器筆記JS
- 《如何有效閱讀一本書》讀書筆記筆記
- 《Go 語言程式設計》讀書筆記 (七) Goroutine 與系統執行緒的區別Go程式設計筆記執行緒
- 諾埃爾的讀書筆記1筆記
- 機器學習讀書筆記:貝葉斯分類器機器學習筆記
- 《將心注入》讀書筆記筆記
- Raft論文讀書筆記Raft筆記
- 讀書筆記-沒有空白筆記
- JVM讀書筆記之OOMJVM筆記OOM
- swift語法-讀書筆記Swift筆記
- 【GO】《GO HANDBOOK》讀書筆記Go筆記
- 讀書筆記(2)《微精通》筆記
- 《Effective C++》讀書筆記C++筆記
- 編譯原理讀書筆記編譯原理筆記
- 類載入讀書筆記筆記
- 《Effective-Ruby》讀書筆記筆記
- 《CSS揭祕》讀書筆記CSS筆記
- 《圖解 HTTP》 讀書筆記圖解HTTP筆記