std::latch

来自cppreference.com
< cpp‎ | thread
 
 
线程支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
latch
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
定义于头文件 <latch>
class latch;
(C++20 起)

latchstd::ptrdiff_t 类型的向下计数器,它能用于同步线程。在创建时初始化计数器的值。

线程可能在 latch 上阻塞直至计数器减少到零。没有可能增加或重置计数器,这使得 latch 为单次使用的屏障。

同时调用 latch 的成员函数,除了析构函数,不引入数据竞争。

不同于 std::barrier ,参与线程能减少 std::latch 多于一次。

成员函数

构造 latch
(公开成员函数)
析构 latch
(公开成员函数)
operator=
[被删除]
latch 不可赋值
(公开成员函数)
以不阻塞的方式减少计数器
(公开成员函数)
测试内部计数器是否等于零
(公开成员函数)
阻塞直至计数器抵达零
(公开成员函数)
减少计数器并阻塞直至它抵达零
(公开成员函数)
常量
[静态]
实现所支持的计数器最大值
(公开静态成员函数)

示例

参阅

(C++20)
可复用的线程屏障
(类模板)