Rumah > Soal Jawab > teks badan
C++11对多线程的支持很完善,互斥量,锁,条件变量,原子操作一应俱全,posix线程库还能另外提供的也就是记录锁,消息队列,但这些都可以在需要时自行实现.而且用C++原生线程库的代码还能够跨平台.
请问现在实际工程中涉及多线程的部分向C++11原生多线程库迁移的如何了?使用posix线程库进行开发的情况还多不多?
黄舟2017-04-17 11:43:57
在POSIX系统中,你觉得能脱离PThread么,貌似底层就是PThread实现的。简单的用std::thread完全没有问题,但是复杂的功能,需要自定义的还是得基于PThread自行封装。STL更好的是算法和容器,多线程还不是非常好。仅代表个人看法。
迷茫2017-04-17 11:43:57
我记得C++11的线程库是根据OpenMP进行封装的。pThread在性能和使用上和OpenMP还是差一些,个人认为,可以了解,如果没有时间,就没有深究的必要。
阿神2017-04-17 11:43:57
我认为:C++11提供的std::thread等也不是语言级别的支持,而是标准库的支持。其实学习起来和用法上c++ thread和pthread并没有什么区别之处(也许pthread有更多的参数?),还有就是你提到的pthread可以提供的其他东西。至于性能上我不认为两者会有什么区别。更多的区别可能是在移植性上。
所以,我觉得,不妨两个都学吧。