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



    我认为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将来能在多线程方面继续改进。


    PS:以上并非官方资料,纯属个人研究。
  • 相关阅读:
    java 找不到或无法加载主类
    navicat connect error: Authentication plugin 'caching_sha2_password' cannot be loaded
    mysql command
    the diffirent between step into and step over (java)
    20181015
    Eclipse
    游戏2048源代码
    vue的生命周期
    简单快速了解Vue.js的开发流程
    C# 连接西门子PLC
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330452.html
Copyright © 2020-2023  润新知