std::unique_lock<Mutex>:: try_lock_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Locking | ||||
|
unique_lock::try_lock_until
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
template
<
class
Clock,
class
Duration
>
bool try_lock_until ( const std:: chrono :: time_point < Clock, Duration > & timeout_time ) ; |
(C++11 起) | |
尝试锁定(即获取所有权)关联的互斥量。阻塞直到达到指定的 timeout_time 或成功获取锁(以先到者为准)。成功获取锁时返回 true ,否则返回 false 。实际阻塞时间可能超过 timeout_time 所设定的时限。
有效地调用 mutex ( ) - > try_lock_until ( timeout_time ) 。
std::system_error 在以下情况会被抛出:当不存在关联的互斥锁,或者该互斥锁已被同一线程锁定。
Clock
必须满足
Clock
要求。
如果
std::
chrono
::
is_clock_v
<
Clock
>
为
false
,则程序非良构。
(C++20 起)
目录 |
参数
| timeout_time | - | 阻塞等待的最晚时间点 |
返回值
true 表示已成功获取互斥锁的所有权, false 表示获取失败。
异常
- 由 mutex ( ) - > try_lock_until ( timeout_time ) 抛出的任何异常。
- 如果没有关联的互斥锁,将抛出 std::system_error ,其错误代码为 std::errc::operation_not_permitted 。
- 如果互斥锁已被锁定,将抛出 std::system_error 异常,其错误代码为 std::errc::resource_deadlock_would_occur 。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
锁定(即获得所有权)关联的互斥量
(公开成员函数) |
|
|
尝试非阻塞地锁定(即获得所有权)关联的互斥量
(公开成员函数) |
|
|
尝试锁定(即获得所有权)关联的
TimedLockable
互斥量,若互斥量在指定时长内不可用则返回
(公开成员函数) |
|
|
解锁(即释放所有权)关联的互斥量
(公开成员函数) |