簡體   English   中英

如果您必須等待每個線程完成,多線程有什么意義

[英]What is the point of Multithreading if you have to wait for each thread to finish

我是多線程的新手,但是在我發現的每個教程中都說要使用 join 方法,這樣您就可以等待每個線程完成后再執行下一個。 如果每個線程一次執行一個線程,那么多線程的意義何在?

這個想法是你可以啟動 4 個線程,然后加入 4 個線程。 當每個線程可以完成四分之一的工作時,這很有效。

如果您的問題本質上是連續的,那么線程無濟於事確實是對的。 這是一個眾所周知的限制; 它被稱為阿姆達爾定律,早在 1967 年就已經觀察到了。

假設您有 1.000.000 個數據集需要訪問和修改。 如果您有一個單線程應用程序,則需要等待完成 1.000.000 個數據集。

使用多線程,您可以拆分工作,每個線程同時執行。 如果您有 1.000.000 個數據集和 4 個線程,那么在最好的情況下,您只需等待 250.000 個數據集的時間。

如果執行之間沒有依賴關系並且工作量很大,則應考慮使用多線程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM