std::counting_semaphore<LeastMaxValue>::try_acquire_for

来自cppreference.com
 
 
线程支持库
线程
(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)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
template<class Rep, class Period>
bool try_acquire_for( const std::chrono::duration<Rep, Period>& rel_time );
(C++20 起)

若内部计数器大于 0 则尝试原子地将它减少 1 ;否则阻塞直至它大于 ​0 且能成功地减少内部计数器,或已经超出 rel_time 时间点。

前条件

(无)

参数

rel_time - 函数必须为失败等待到的最小时长

返回值

若减少内部计数器则为 true ,否则为 false

异常

可能抛出 std::system_error 或与到达时间相关的异常。

注解

实践中函数可能需要经过长于 rel_time 的时间才失败。

允许实现未能减少计数器,即使它大于 0 ——即允许它们虚假地失败并返回 false