1 个不稳定版本

0.1.0 2023年7月17日

1174并发

MIT 许可证

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