C++0x 允许在达到给定时间之前锁定互斥体,并返回一个布尔值,说明互斥体是否已被锁定。
template <class Clock, class Duration>
bool try_lock_until(const chrono::time_point<Clock,
Duration>& abs_time);
在某些情况下,我考虑了一种异常情况,即锁定由于超时而失败。在这种情况下,应该更适合例外。
为了有所作为,可以使用函数 lock_until 在达到锁定之前的时间时获取超时异常。
template <class Clock, class Duration>
void lock_until(const chrono::time_point<Clock,
Duration>& abs_time);
您认为 lock_until 在某些情况下应该更合适吗?如果是,在哪些方面?如果不是,为什么 try_lock_until 总是更好的选择?