首頁  >  問答  >  主體

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

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

PHPzPHPz2765 天前771

全部回覆(3)我來回復

  • 黄舟

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

    在POSIX系統中,你覺得能脫離PThread麼,貌似底層就是PThread實現的。簡單的用std::thread完全沒有問題,但複雜的功能,需要自訂的還是得基於PThread自行封裝。 STL更好的是演算法和容器,多執行緒還不是非常好。僅代表個人看法。

    回覆
    0
  • 迷茫

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

    我記得C++11的執行緒函式庫是根據OpenMP進行封裝的。 pThread在性能和使用上和OpenMP還是差一些,個人認為,可以了解,如果沒有時間,就沒有深究的必要。

    回覆
    0
  • 阿神

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

    我認為:C++11提供的std::thread等也不是語言等級的支持,而是標準函式庫的支持。其實學習起來和用法上c++ thread和pthread並沒有什麼差別(也許pthread有更多的參數?),還有就是你提到的pthread可以提供的其他東西。至於性能上我不認為兩者會有什麼差別。更多的區別可能是在移植性上。
    所以,我覺得,不妨兩個都學吧。

    回覆
    0
  • 取消回覆