2个稳定版本
1.0.1 | 2021年10月16日 |
---|---|
1.0.0 | 2021年10月15日 |
#308 in 缓存
29KB
446 行
extra_waiters
此库在parking_lot_core
之上提供了同步原语。这里的各种等待器是Condvar
和Mutex
的混合,具体细节因每个等待器而异。
请注意,使用此库不需要
Mutex
。
用法示例可以在为每个模块编写的测试用例中看到,但是每个等待器的通用模式如下
AttentiveWaiter
此等待器提供以下功能
-
不等待通知,如果在上次轮询通知之前已经发生了一个通知。
-
在线程休眠之前执行一些代码,确保在用户代码运行和线程休眠之间没有线程可以通知。
-
使用在某个
Instant
时间或某个Duration
之后超时的超时函数执行前两点。
OnceWaiter
此等待器提供以下功能
-
确保初始化函数仅运行一次。
-
确保初始化函数仅在单个线程上运行。
-
在当前线程恐慌的情况下运行另一个线程的初始化函数。
-
在当前线程未提供初始化函数的情况下等待通知。
-
在指定的时间后执行初始化函数。
Spinlock
基于原子操作的简单自旋锁。
此自旋锁不推荐在大多数情况下使用,因为它可能导致死锁。
依赖项
~190–460KB