java 多線程線程池

                       ExecutorService es = Executors.newFixedThreadPool(120); //線程池的大小


List<Future<List<String>>> result =new ArrayList<Future<List<String>>>();//放結果用的集合

for (UserModel i : userlist) {

SimilarUserTask task = new SimilarUserTask(similarity, userlist, i.getUserID(), coll);//需要執行的任務
Future<List<String>> f=es.submit(task);//線程執行完成以後可以通過引用獲取返回值
                result.add(f);

}


for(Future<List<String>> f:result){
       try {
System.err.println("返回值:"+f.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();

}//輸出返回的值


這個很好用啊,20萬條數據本來要讀取1個晚上,現在10鍾搞定,特別好用啊,嘎嘎


發佈了95 篇原創文章 · 獲贊 11 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章