我想在scoped_lock中同時使用timed_mutex。我之前通過以下示例成功使用了scoped_lock,但現在我似乎無法找到解決方法,我也無法正確理解boost文檔。如何正確使用boost :: timed_mutex和scoped_lock
期望的行爲如下:嘗試獲取x時間的scoped_lock,如果成功返回true,否則返回false。
目前我有:
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
然而,當我試圖找到(通過Boost文檔或實例)如果此scoped_lock中會返回一個布爾與否我覺得沒有什麼或找到真正不同的方式來做到這一點。
因此,我問哪個是正確的方法來做到這一點,它是如何正確工作,並可能指示如何正確「讀取」提升文檔。
UPDATE:
所以
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
if(scoped_lock.owns_lock()) {
// exclusive code
}
將創建)一個互斥體,當我嘗試用scoped_lock.owns_lock(鎖定將嘗試在10毫秒獲取鎖(在這種情況下)和返回如果時間到了,並且沒有獲取鎖定,則返回false?
這個問題可以幫助你: http://stackoverflow.com/questions/14200305/usage-of-boostunique-locktimed-lock –