亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在java中使用多線程并行化for循環

在java中使用多線程并行化for循環

慕村225694 2021-10-27 18:53:06
我在 java 中有一個 for 循環,它具有以下結構,我需要將其并行化為固定數量的線程。讓我們說這個數字在numThreads. for 循環如下。請注意,只有外循環需要并行化。我想我需要使用 Executor,但我不知道如何將工作負載拆分到不同的線程中,如果這會改變我在isInsulator[x][y]. 基本上我想要不同的線程拆分 X 的值并為分配給它們的那些 x 值運行 for 循環。那有意義嗎?任何人都可以幫助我實現這一目標,或者請把我推向正確的方向?
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

  1. 編寫一個基準測試(這樣你就可以證明并行處理確實更快),使用 JMH。

  2. 將代碼重寫為produce_inputs->process->collect_or_summarize管道

  3. 使用 parallel Streams API(它使用內部 fork-join 池調整到盒子上的 CPU 數量)。

  4. 比較順序和并行處理的性能。

int result = IntStream.generate(() -> 42) // 惰性輸入源
        .limit(100) // 限制輸入數量
        .parallel() // 使用并行處理// .sequential() // ...或順序處理
        .map(x -> x + 1) // 進行處理
        .reduce(0, Math::addExact); //總結結果// .collect(toList()); // ...或者只是將其收集到容器中


查看完整回答
反對 回復 2021-10-27
  • 2 回答
  • 0 關注
  • 828 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號