windows和linux下多线程的一些区别

时间:2008-10-05 06:49:26  来源:第二电脑网上收集  作者:

  第二电脑网导读: handle可以用pthread_join,但是没有超时。linux下没有WaitForMultipleObjects,也没有替代的实现方法。如果一个程序准备跨平台,那么在windows上实现的时候最好不要使用WaitForMultipleObjects。可以用WaitForSingleObject加上一些bool类型的flags来替代。二、性能IBM有个家伙做了个测试,发现切换线程context的时候,...
  正文: 我认为linux的多线程不如windows。理由如下:

一、功能

WaitForSingleObject在linux下可以用pthread_cond_wait来替代实现,但是pthread_cond_wait不能用来等待thread handle。要等待thread handle可以用pthread_join,但是没有超时。
linux下没有WaitForMultipleObjects,也没有替代的实现方法。如果一个程序准备跨平台,那么在windows上实现的时候最好不要使用WaitForMultipleObjects。可以用WaitForSingleObject加上一些bool类型的flags来替代。

二、性能
IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更适合做high performance server,不过在多线程这个具体的领域内,linux还是稍逊windows一点。这应该是情有可原的,毕竟unix家族都是从多进程过来的,而windows从头就是多线程的。不过我还是希望linux将来能在多线程方面继续改进。


photoshop/ target=_blank class=infotextkey>ps:以上并非官方资料,纯属个人研究。

windows和linux下多线程的一些区别》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Server/Windows2000/2008-10-05/1135.html


关键字:

关于《windows和linux下多线程的一些区别》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td