【发布时间】:2016-10-17 00:13:52
【问题描述】:
标题很好地总结了我的问题。 “在什么情况下使用线程会使顺序程序受益”?
【问题讨论】:
-
您的问题非常广泛。一般答案是:“如果顺序程序中有可以并行运行的代码块,将会获得好处”。但这可以扩展到许多文本段落。
标签: multithreading operating-system sequential
标题很好地总结了我的问题。 “在什么情况下使用线程会使顺序程序受益”?
【问题讨论】:
标签: multithreading operating-system sequential
有很多原因,而且有点复杂。所以我尽量让自己变得珍贵。
每个程序都可以并行化,但有时并不值得。
多线程的最大好处是可以使用所有内核。这可以导致性能的改进。在最佳情况下,让 2 个内核处理一个问题将使执行速度加倍。但实际上这种加速会因线程的开销而降低:
一般开销:
要忽略启动-停止开销,线程的生命周期应尽可能长。
通信/同步部分是主要问题。这里有非常多的复杂性。简而言之:避免/减少线程之间的通信。每个线程都应该尽可能独立地工作。
基本上它是开销和并行性之间的权衡。 所以关键问题是:
【讨论】: