C++14通过shared_timed_mutex提供了读写锁,而C++17通过shared_mutex提供了读写锁。
说实话,除了shared_timed_mutex可以在lock时传递一个timeout_duration作为最长等待时间,本人还没没弄清楚这两个读写锁在使用上有什么明显的区别:
#include#include #include #include using namespace std; shared_mutex sLock; int g_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=" << g_data << endl; } int main() { shared_lock slk(sLock); //读锁加锁 cout << getTime() << " shared_lock locked"< ulk(sLock); //写锁加锁 cout << getTime() << " unique_lock locked"<



