我正在尝试将shared_mutex的unique_lock移到另一个线程以实现我的设计目标。
请参见下面的示例代码。如果我将std :: shared_mutex替换为std :: mutex
,该代码将起作用using namespace std;
shared_mutex shared_mutex_;
{
unique_lock<shared_mutex> lock_{shared_mutex_};
thread t{[](unique_lock<shared_mutex> &&lock) { lock.unlock(); },
move(lock_)};
t.join();
}
if (shared_mutex_.try_lock()) { // False
cout << "Lock shared_mutex_ successful\n";
shared_mutex_.unlock();
}
我的设计目标是:
我正在尝试使用std :: shared_mutex或std :: shared_timed_mutex实现我的设计目标。但这似乎不起作用。如果您还有其他想法,请告诉我。谢谢。