1 个不稳定版本
0.1.0 | 2023年7月17日 |
---|
1174 在 并发 中
5KB
86 行
tpx
调度和运行协程。
- 进行中
- 使用线程池创建轻量级协程
- 适用于协作型 CPU 任务
- 传续风格:回调自动安排在工作窃取线程池中运行
- 非常简单和快速。没有异步运行时。
示例
use std::{thread::sleep, time::Duration};
use tpx::{continue_with, Ctn::DONE, Executor};
fn main() {
let exec = Executor::init();
// Spawn 3 tasks: each task schedules its own continuation
for i in 0..3 {
exec.spawn(move || {
println!("Hello from task {i}");
// Some data to passed to the continuation
let j = i * 3;
sleep(Duration::from_millis(123));
// Yield to the executor.
continue_with(move || {
println!("Hello from continuation {i}: Result: {j}");
DONE
})
});
}
// TODO: block on the executor until all tasks are done.
sleep(Duration::from_secs(3));
}
依赖项
~1.5MB
~25K SLoC