Linux与Solaris上的线程性能

Linux与Solaris上的线程性能,linux,performance,multithreading,solaris,pthreads,Linux,Performance,Multithreading,Solaris,Pthreads,这篇Linux杂志文章解释了Linux中线程的实现方式与商业Unix(如Solaris)的不同。总之,Linux使用用户线程到内核线程的1对1映射,而Solaris使用多对多映射。这篇文章暗示,这可能会给Solaris带来性能优势,特别是在线程之间切换时。在我花时间测试这个之前,有人已经做过了吗?人们过去认为M:N线程是个好主意,但每个人都已经转向1:1线程;它具有较低的开销,并且在SMP环境中工作得更好。我相信Solaris已经从M:N线程化转变为1:1线程化。你链接到的那篇文章似乎是2001

这篇Linux杂志文章解释了Linux中线程的实现方式与商业Unix(如Solaris)的不同。总之,Linux使用用户线程到内核线程的1对1映射,而Solaris使用多对多映射。这篇文章暗示,这可能会给Solaris带来性能优势,特别是在线程之间切换时。在我花时间测试这个之前,有人已经做过了吗?

人们过去认为M:N线程是个好主意,但每个人都已经转向1:1线程;它具有较低的开销,并且在SMP环境中工作得更好。我相信Solaris已经从M:N线程化转变为1:1线程化。你链接到的那篇文章似乎是2001年的,所以有点过时(它只是订阅者,所以我看不懂)。

bugmenot.com是linux-mag.com等网站的朋友。我不是linux杂志的订阅者,我能够看到这篇文章。感谢您提供Solaris 9信息。您有参考资料吗?@bobmcn我编辑了我的答案,并链接到一份关于Solaris 9线程的白皮书,其中提到MxN调度已经消失,并被1:1线程所取代。这表示单级模型是在Solaris 8中引入的,并在Solaris 9中成为默认模型。但是请注意,这只是默认情况——应用程序只需链接到不同的库,就可以使用更复杂的模型。将更简单的路由设置为默认路由似乎是合理的,但可能更复杂的模型为高度并发的应用程序提供了更好的性能。(?)@AmigoNico并发性和性能(以及编程的正确性和易用性)是一个非常复杂的主题,我不能在这里的评论部分公正地讨论它。有可能存在M:N调度非常有用的专用应用程序,并且有各种线程池库和语言在硬件线程池上实现它们的线程,以允许您这样做。我的观点是,在大多数情况下,1:1实际上比M:N更可取,因此Solaris在默认情况下移动到1:1。