std::counting_semaphore<LeastMaxValue>::try_acquire_for

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 的时间才失败。

参阅

增加内部计数器并解除获得者
(公开成员函数)
减少内部计数器或阻塞到直至能如此
(公开成员函数)
尝试减少内部计数器而不阻塞
(公开成员函数)
尝试减少内部计数器,阻塞直至一个时间点
(公开成员函数)