回答
它完全取決於您在與整個程序的關係中進行並行化的部分,以及程序中的算法對並行可計算性的適用程度。有句老話叫One woman can have a baby in nine months, but nine woman cannot have the same baby in one month
,也就是說「不是所有的算法都是高效並行計算的」,I/O就是一個很好的例子。
Amdahl定律指出,與n
線程的程序,程序的一部分B
的整體增速仍然是串行的是:
1
--------------------------
B + ((1/n) (1 - B))
什麼這個等式告訴我們的是,即使是infinite
加速的程序的一部分隻影響該部分。 例如:
假設一個程序有一個函數Foo
,它可以讓它自己並行運行。分析後,您會發現程序在Foo
方法調用中花費了其總運行時間的25%。這意味着,即使你能夠無限地加快程序的這一部分,你的程序只會快33%(1/0.75)。
但是,當然,您無法使用線程無限地加速程序的任何部分,您可以將工作分解得更多。 你必須記住,創建/同步線程的開銷爲,所以即使有20個線程,也不會獲得20倍的加速。
但是,要回答您的原始問題,讓我們假設您的整個程序可以並行運行。
如果要拆分n
線程之間的工作了均勻,我經常發現,由於鎖定,同步和競爭,你通常會獲得0.6 * n
速度增加,在平均情況下。
現在對於OP認爲'0.6 * n'是普遍定律的部分,當它不準確時就會抱怨。 – immibis
- 1. 更改左側百分比,如果有certian百分比
- 2. 進程百分比
- 3. Python線程,測量進度百分比
- 4. VB.net電池使用時間百分比
- 5. 計算時間百分比
- 6. 百分比的總時間
- 7. 如何使用jQuery百分比滑塊顯示百分比結果
- 8. 如何在確定百分比時使用WITH ROLLUP結果
- 9. Highcharts如何使用時間百分比區域
- 10. 如果不允許使用百分比,如何使用android支持百分比使用xml resoureces value?
- 11. 用JProgressBar以百分比數顯示線程進度
- 12. 在內核例程中查找進程時間佔進程啓動以來所用時間的百分比
- 13. Android時間間隔百分比
- 14. 使用XSLT進行百分比編碼
- 15. 如何使用Telerik RadControls添加帶有十進制和百分比符號的百分比文本框
- 16. JQuery的,如果用百分比
- 17. 我怎樣才能按他們的百分比分割線程
- 18. 如何更改百分比數字?
- 19. 如果折扣百分比大於零,如何顯示折扣百分比? PHP
- 20. 如何通過JavaScript更改線性漸變百分比?
- 21. Android應用程序:如何更改電池的百分比?
- 22. 百分比使用情況如何?
- 23. 如何使用MDX獲取百分比
- 24. 如何計算兩個日期時間之間的百分比
- 25. 如何使用jquery獲取百分比線高?
- 26. 如何使用百分比繪製R中的密度曲線?
- 27. Java上傳百分比進度條線程
- 28. Linux時間分割進程或線程
- 29. 如何使用進度百分比更新$ ionicLoading?
- 30. 如何使用進度欄顯示下載的百分比?
如果是順序阻塞的任務,則需要35分鐘。如果不是,則爲並行任務引入線程並計算改進。 –
34%。 2%。沒有8%。沒有17%。你如何期待我們知道?你的代碼在做什麼?你在說多少線程?你確定知道問題可以是多線程嗎?沒有更多的信息,這是無法回答的。 – John3136
線程本身並不會使某些東西運行得更快,除非它可以並行化。現在,你的問題是無法回答的,因爲它嚴重依賴於需要35分鐘的操作性質。 –