傳輸多個線程之間的值,在java中:如何用Java
r1=complexCalc1();
r2=complexCalc2();
r3=complexCalc3();
r4=complexCalc4();
r5=complexCalc5();
return r1+r2+r3+r4+r5;
假設運行時間像
complexCalc1() -> 5 mins
complexCalc2() -> 3 mins
complexCalc3() -> 2 mins
complexCalc4() -> 4 mins
complexCalc5() -> 9 mins
如果此方案已按順序運行,將採取23 分鐘計算R1 + R2 + R3 + R4 + R5。如果每個函數並行運行,即每個線程所花費的總計時間中的每個函數complexCalc()函數爲r1 + r2 + r3 + r4 + r5計算需要9分鐘。
我的問題是如何實現它..我嘗試了幾種方法,但我仍然 弄清楚什麼具體。
在此先感謝。
採取在遺囑執行人及期貨和[java.util.concurrent中]所有的好東西(HTTP一個戰利品: //docs.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html) – zapl
就像一個筆記,並不一定是你會得到一個完美的併發量。如果這些計算中的每一個都有自己的核心來運行,並且沒有必要進行協調,那麼您可能會接近理想,但即便如此,也沒有保證。 – kjw0188