下面是主函式的
ExecutorService executorService = Executors.newCachedThreadPool();
ArrayList<Future> arrayList = new ArrayList();
for (int i = 0; i < 5; i++) {
Future<String> stringFuture = executorService.submit(new Task());
arrayList.add(stringFuture);
}
executorService.shutdown();
//
for (int i = 0; i < arrayList.size(); i++) {
try {
System.out.println(arrayList.get(i).get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
我想請問一下各位大佬,關于執行緒池這塊我第一個回圈后面講執行緒池停止是否可以,或者說必須放在第二回圈后面,我認為在第一個回圈已經把Task類中的回傳值存入了Future物件然后放入集合,之后就遍歷集合的所有結果就可以。
然后如果說我直接在第一個回圈不用list存,直接列印結果,就變成單執行緒了,是否可以認為get方法導致阻塞必須一個執行緒一個執行緒執行完才行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248314.html
標籤:Java SE
上一篇:資料表格匯入問題
