cari

Rumah  >  Soal Jawab  >  teks badan

在C++11引入了对多线程语言级别的支持之后,还有必要学习posix线程吗?

C++11对多线程的支持很完善,互斥量,锁,条件变量,原子操作一应俱全,posix线程库还能另外提供的也就是记录锁,消息队列,但这些都可以在需要时自行实现.而且用C++原生线程库的代码还能够跨平台.
请问现在实际工程中涉及多线程的部分向C++11原生多线程库迁移的如何了?使用posix线程库进行开发的情况还多不多?

PHPzPHPz2809 hari yang lalu795

membalas semua(3)saya akan balas

  • 黄舟

    黄舟2017-04-17 11:43:57

    在POSIX系统中,你觉得能脱离PThread么,貌似底层就是PThread实现的。简单的用std::thread完全没有问题,但是复杂的功能,需要自定义的还是得基于PThread自行封装。STL更好的是算法和容器,多线程还不是非常好。仅代表个人看法。

    balas
    0
  • 迷茫

    迷茫2017-04-17 11:43:57

    我记得C++11的线程库是根据OpenMP进行封装的。pThread在性能和使用上和OpenMP还是差一些,个人认为,可以了解,如果没有时间,就没有深究的必要。

    balas
    0
  • 阿神

    阿神2017-04-17 11:43:57

    我认为:C++11提供的std::thread等也不是语言级别的支持,而是标准库的支持。其实学习起来和用法上c++ thread和pthread并没有什么区别之处(也许pthread有更多的参数?),还有就是你提到的pthread可以提供的其他东西。至于性能上我不认为两者会有什么区别。更多的区别可能是在移植性上。
    所以,我觉得,不妨两个都学吧。

    balas
    0
  • Batalbalas