1 个不稳定版本
0.1.0 | 2022年5月9日 |
---|
#48 在 #worker-thread
被 2 个 crate 使用
6KB
109 行
执行器
这是一个简单的执行器。有一个可以被许多工作线程共享的 Arc<Executor>
类型。
每个工作线程将连续运行 executor.poll_once()
,这将
- 从共享任务队列中弹出一个任务
- 如果没有任务,则挂起线程
- 轮询该任务
该任务将使用引用该任务的上下文(使用 Mutex<Option<Task>>
)和执行器的副本进行轮询。
在此上下文中调用 wake 将会调用 executor.wake(task)
。如果有线程正在休眠,其中一个将会被唤醒。
依赖关系
~1MB
~18K SLoC