如果你必须等待每个线程完成,那么多线程的意义何在



我是多线程的新手,但在我发现的每一篇教程中,都说要使用联接方法,这样你就可以等待每个线程完成后再执行下一个线程。如果每个线程一次执行一个,那么多线程的意义何在?

这个想法是可以启动4个线程,然后连接4个线程。当每个线程可以完成四分之一的工作时,这种方法效果很好。

如果你的问题本质上是连续的,那么线程并没有帮助你,这确实是对的。这是众所周知的限制;它被称为Amdahl定律,早在1967年就被观测到了。

假设您有1.000.000个数据集需要访问和修改。如果你有一个单线程应用程序,你需要等待完成1.000.000个数据集。

使用多线程,您可以拆分工作,每个线程同时执行。如果您有1.000.000个数据集和4个线程,在最好的情况下,您只需要等待,就像您有250.000个数据集中一样长。

如果执行之间没有依赖关系,并且工作量很大,则应该考虑使用多线程。

最新更新