C++14实现了读写锁:
通过shared_lock
通过unique_lock
多个读锁可以同时运行,但是如果写锁被加锁了,那么其他写锁或读锁都会被阻塞
#include#include #include #include using namespace std; shared_timed_mutex sLock; int data = 10; unsigned long getTime() { return chrono::system_clock::now().time_since_epoch().count()/chrono::system_clock::period::den; } void read_shared_data(int id) { cout << getTime() << " thread "<< id << " begin" << endl; shared_lock slk(sLock); cout << getTime() << " thread " << id << " read data=" << data << endl; } int main() { shared_lock slk(sLock); //读锁加锁 cout << getTime() << " shared_lock locked"< ulk(sLock); //写锁加锁 cout << getTime() << " unique_lock locked"<



