700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C++ 互斥锁和条件变量实现读写锁

C++ 互斥锁和条件变量实现读写锁

时间:2023-05-04 00:51:31

相关推荐

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(); }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。