日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在公司負責一個線程池的模塊,里面用到了boost庫中的mutex、condition_variable與mutex::scoped_lock,在此總結下線程池在使用時的方式和要點,這里記錄了線程之間的通信方式,希望對學習線程之間(同一個進程)通信的同志們有所幫助。

線程之間(在同一個進程)的通信方式:信號量;mutex,條件變量和讀寫鎖。

class Condition {public:Condition() : count(0) { }virtual ~Condition() { }void Increase() {boost::mutex::scoped_lock lock(mutex);++ count;}void Decrease() {boost::mutex::scoped_lock lock(mutex);-- count;cond.notify_all(); //通知所有的線程}void Wait() {boost::mutex::scoped_lock lock(mutex);while (count > 0) {cond.wait(lock);}}private:boost::condition_variable cond; //條件變量boost::mutex mutex;int32_t count;};

如果沒有boost庫,可以使用std::mutex, std::condition_variable代替,本人建議使用std標準庫中的。

總結

以上是生活随笔為你收集整理的boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。