有没有办法在等待互斥锁锁定时执行代码部分?
对我的应用程序性能唯一真正的内部影响是数据库交互,有时我需要严格同步,因为数据库交互可能会导致争用,所以我想利用等待锁的时间从数据库。
例如,我希望代码看起来像伪代码:
boost::unique_lock<boost::mutex> process_lock(process_mutex, work_while_contending);
//code to execute while lock contending
process_lock.proceed_after_lock();
我检查了 boost 的同步部分,虽然futures
和recursive
听起来我的意图可以实现,但我不知道如何实现我的意图。
我的意图如何实现?