C++ 具名要求:共享定时互斥体 (SharedTimedMutex)

来自cppreference.com
< cpp‎ | named req
 
 
C++ 具名要求
基础
类型属性
库所属
容器
容器元素
(C++11)

迭代器
流 I/O
格式化
(C++20)
随机数
(C++11)    
并发
(C++11)
(C++11)
SharedTimedMutex
(C++14)
范围
其他
(C++11)


 

共享定时互斥体 (SharedTimedMutex) 要求扩展定时互斥体 (TimedMutex) 要求以包含共享锁所有权模式。

要求

另外,对于支持定时共享操作的共享定时互斥体 (SharedTimedMutex) 类型对象 m

  • 表达式 m.try_lock_shared_for(duration) 拥有下列属性
  • 表现为原子操作。
  • 试图在 duration 所指定的时常内获得互斥的共享所有权。若 duration 小于或等于 duration.zero() ,则试图获得所有权而不阻塞(如同用 try_lock() )。否则,此函数将阻塞直至得到互斥,或直至经过 duration 所指定的时长。它仅若成功才在 duration 内返回,但允许获得互斥失败,即使在 duration 期间的某点,互斥不为另一线程所占有。任何情况下,若得到互斥则返回 true ,否则返回 false
  • try_lock_shared_for(duration) 成功,则同一对象上先前的 unlock() 操作同步于此操作(等价于释放获得内存顺序 (std::memory_order) )。
  • 若调用方线程已以任何模式占有互斥,则行为未定义。
  • 执行期间时钟、时间点或时长可能抛出异常(标准库提供的时钟、时间点及时长决不抛出)。
  • 若抛出异常,则不获得共享锁。
  • 表达式 m.try_lock_shared_until(time_point) 拥有下列属性
  • 表现为原子操作。
  • 试图在 time_point 前剩余的时间内获得互斥的共享所有权。若已经过 time_point ,则试图获得所有权而不阻塞(如同用 try_lock() )。否则,此函数将阻塞直至得到互斥,或直至经过 time_point 所制定的时间点。它仅若成功才在 time_point 前返回,但允许获得互斥失败,即使在 time_point 前的某点,互斥不为另一线程所占有。任何情况下,若得到互斥则返回 true ,否则返回 false
  • try_lock_shared_until(time_point) 成功,则同一对象上先前的 unlock() 操作同步于此操作(等价于释放获得内存顺序 (std::memory_order) )。
  • 若调用方线程已以任何模式占有互斥,则行为未定义。
  • 执行期间时钟、时间点或时长可能抛出异常(标准库提供的时钟、时间点及时长决不抛出)。
  • 若抛出异常,则不获得共享锁。

库类型

下列标准库类型满足共享定时互斥体 (SharedTimedMutex)

参阅