文章詳情頁
java線程為什么這樣沒有輸出
瀏覽:105日期:2024-02-01 13:09:32
問題描述
List<String> list = Arrays.asList('a','b','c','d'); ExecutorService service = Executors.newFixedThreadPool(2); service.execute(() -> list.parallelStream().forEach(System.out::println));
這樣一段代碼什么都沒輸出,而將parallelStream去掉就可以輸出,這是什么機制?誰能解釋下
問題解答
回答1:parallelStream 方法是并發執行,相當于開啟了線程在執行輸出sout。沒有輸出的原因是主線程執行完了,子線程也就完了,此時就沒有sout,在代碼最后加個等待,就可以看到效果
回答2:parallel...這個方法是干什么用的?
回答3:2樓的答案非常好相當于開啟了n+個線程而并不是n個
標簽:
java
相關文章:
1. mysql - 數據庫建字段,默認值空和empty string有什么區別 1102. 新人求教MySQL關于判斷后拼接條件進行查詢的sql語句3. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?4. mysql - 這種分級一對多,且分級不平衡的模型該怎么設計表?5. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?6. mysql - 數據庫表中,兩個表互為外鍵參考如何解決7. php - 公眾號文章底部的小程序二維碼如何統計?8. mysql - 表名稱前綴到底有啥用?9. mysql - 千萬數據 分頁,當偏移量 原來越大時,怎么優化速度10. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf
排行榜
