#include <bits/stdc++.h>
using namespace std;
class RWlock{
public:
RWlock(int state_):state(state_){}
void rlock(){
unique_lock<mutex> lck(mtx);
while(state<0){
cond.wait(lck);
}
state++;
}
void unrlock(){
unique_lock<mutex> lck(mtx);
if(--state==0) cond.notify_one();
}
void wlock(){
unique_lock<mutex> lck(mtx);
while(state!=0) cond.wait(lck);
state--;
}
void unwlock(){
unique_lock<mutex> lck(mtx);
state=0;
cond.notify_all();
}
private:
mutex mtx;
int state;
condition_variable cond;
};
c++中互斥锁实现读写锁
最新推荐文章于 2024-08-01 17:24:44 发布