C++ 互斥锁和条件变量实现读写锁
生活随笔
收集整理的這篇文章主要介紹了
C++ 互斥锁和条件变量实现读写锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近的諸多面試經歷確實讓自己發現內功還不夠,還需要持續的學習精進。
實現如下:
class RWLock{private:int state;mutex mu;condition_variable cond;public:RWLock():state(0){}void rlock(){mu.lock();while(state < 0){cond.wait(mu);}state++;mu.unlock();}void runlock(){mu.lock();if(--state == 0) {cond.notify_one();//叫醒一個等待的寫操作}mu.unlock();}void wlock(){mu.lock();while(state!=0){cond.wait(mu);}state = -1;mu.unlock();}void wunlock(){mtx.lock(); stat = 0; cond.notify_all(); // 叫醒所有等待的讀和寫操作 mtx.unlock(); }
}
總結
以上是生活随笔為你收集整理的C++ 互斥锁和条件变量实现读写锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode-102 二叉树的层次遍
- 下一篇: 分享下期预告