2个稳定版本

1.0.1 2021年10月16日
1.0.0 2021年10月15日

#308 in 缓存

MIT/Apache

29KB
446

extra_waiters

Crate API

此库在parking_lot_core之上提供了同步原语。这里的各种等待器是CondvarMutex的混合,具体细节因每个等待器而异。

请注意,使用此库不需要Mutex

用法示例可以在为每个模块编写的测试用例中看到,但是每个等待器的通用模式如下

AttentiveWaiter

此等待器提供以下功能

  • 不等待通知,如果在上次轮询通知之前已经发生了一个通知。

  • 在线程休眠之前执行一些代码,确保在用户代码运行和线程休眠之间没有线程可以通知。

  • 使用在某个Instant时间或某个Duration之后超时的超时函数执行前两点。

OnceWaiter

此等待器提供以下功能

  • 确保初始化函数仅运行一次。

  • 确保初始化函数仅在单个线程上运行。

  • 在当前线程恐慌的情况下运行另一个线程的初始化函数。

  • 在当前线程未提供初始化函数的情况下等待通知。

  • 在指定的时间后执行初始化函数。

Spinlock

基于原子操作的简单自旋锁。

此自旋锁不推荐在大多数情况下使用,因为它可能导致死锁。

依赖项

~190–460KB