我想在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 –