std::counting_semaphore<LeastMaxValue>::try_acquire_until

来自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++20)
(C++20)
未来体
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
(C++26)
风险指针





原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
内存定序
原子操作的自由函数
原子标志的自由函数
 
 
template< class Clock, class Duration >
bool try_acquire_until( const std::chrono::time_point<Clock, Duration>& abs_time );
(C++20 起)

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

std::chrono::is_clock_v<Clock>false 则程序非良构。

前条件

Clock 符合时钟 (Clock) 要求。

参数

abs_time - 函数必须为失败等待到的最早 时间点

返回值

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

异常

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

注解

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

参阅

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