zoukankan      html  css  js  c++  java
  • boost 轻量级信号量

    #include <boost/thread/condition_variable.hpp>
    #include <boost/thread/mutex.hpp>    
    #include <boost/thread/lock_types.hpp>
    #include <boost/thread.hpp> 
     
    class semaphore
    {
        unsigned int count_;
        boost::mutex mutex_;
        boost::condition_variable condition_;
     
    public:
        explicit semaphore(unsigned int initial) : count_(initial){}
     
        void signal()
        {
            {
                boost::lock_guard<boost::mutex> lock(mutex_);
                ++count_;
            }
            condition_.notify_one(); 
        }
     
        void wait() 
        {
            boost::unique_lock<boost::mutex> lock(mutex_);
            while (count_ == 0)
            {
                 condition_.wait(lock);
            }
            --count_;
        }
    };
  • 相关阅读:
    CCF-CSP题解 201509-4 高速公路
    CCF-CSP题解 201403-4 无线网络
    CCF-CSP题解 201512-4 送货
    2019年9月10日
    53. 最大子序和
    54. 螺旋矩阵
    59. 螺旋矩阵 II
    61. 旋转链表
    62. 不同路径
    70. 爬楼梯
  • 原文地址:https://www.cnblogs.com/lidabo/p/3816704.html
Copyright © 2011-2022 走看看