java 異步 多線程


private static String execute() throws ExecutionException, InterruptedException {

// 定義線程池
ExecutorService exc = Executors.newFixedThreadPool(20);
// 定義結果集
List<Future<Boolean>> futures = new ArrayList<Future<Boolean>>();
// 定義任務處理
for (int i=0;i<10;i++) {
// 提交任務
int finalI = i;
Future<Boolean> future = exc.submit(() -> {
Thread.sleep(finalI*10);
System.out.println("任務"+ finalI +"end");
return true;
});
// 將每個線程放入線程集合, 這裏如果任何一個線程的執行結果沒有回調,線程都會自動堵塞
futures.add(future);
}
// 獲取結果集
for (Future<Boolean> task : futures) {
Boolean rst = task.get();
if (rst != null) {
System.out.println(rst);
}
}
return "success";

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章