在线文档教程
C++
线程支持 | Thread support

std::unique_lock::try_lock_for

性病::独特[医]锁::试一试[医]锁[医]为

template< class Rep, class Period > bool try_lock_for( const std::chrono::duration& timeout_duration (since C++11)

试图锁定相关的互斥对象。块,直到指定timeout_duration已过或已取得锁,以第一位为准。关于成功锁定获取返回true,否则返回false.有效地打电话mutex()->try_lock_for(timeout_duration)...

用一个稳定的时钟来测量持续时间。此函数的阻塞时间可能超过timeout_duration由于调度或资源争用延迟。

std::system_error如果没有关联的互斥对象,或者互斥对象已经锁定,则引发。

参数

timeout_duration-maximum duration to block for

返回值

true如果互斥体的所有权已经成功获得,false否则。

例外

  • 引发的任何异常mutex()->try_lock_for(timeout_duration)

  • 如果没有关联的互斥,std::system_error错误代码为std::errc::operation_not_permitted

  • 如果互斥锁已经锁定,std::system_error错误代码为std::errc::resource_deadlock_would_occur

另见

locklocks the associated mutex (public member function)
try_locktries to lock the associated mutex, returns if the mutex is not available (public member function)
try_lock_untiltries to lock the associated TimedLockable mutex, returns if the mutex has been unavailable until specified time point has been reached (public member function)
unlockunlocks the associated mutex (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/线程/UNIQUE[医]锁/试[医]锁[医]为