命名空间
变体
操作

C++ 命名要求: SharedLockable (自 C++14 起)

来自 cppreference.cn
 
 
C++ 命名要求
基本
类型属性
全库范围




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
随机数
并发
SharedLockable(共享可锁定)
(C++14)
(C++11)
Ranges
多维视图
其他

 

SharedLockable 要求描述了为执行代理(即线程)提供共享阻塞语义的类型的最小特征。

目录

[编辑] 要求

为了使类型 L 成为 SharedLockable,对于类型 L 的对象 m,必须满足以下条件:

表达式 前置条件 效果 返回值
m.lock_shared() 阻塞直到为当前执行代理(线程、进程、任务)获取锁。如果抛出异常,则不获取锁。
m.try_lock_shared() 尝试为当前执行代理(线程、进程、任务)获取锁,不阻塞。如果抛出异常,则不获取锁。 如果获取到锁则为 true,否则为 false
m.unlock_shared() 当前执行代理持有 m 上的共享锁。 释放执行代理持有的共享锁。

不抛出异常。

[编辑] 共享锁

对一个对象的锁被称为共享锁,如果它是通过调用 lock_sharedtry_lock_sharedtry_lock_shared_fortry_lock_shared_until 成员函数获得的。

[编辑] 标准库

以下标准库类型满足 SharedLockable 要求

提供共享互斥设施
(类) [编辑]
提供共享互斥设施,并实现带超时锁
(类) [编辑]

[编辑] 另请参阅