1个稳定版本

1.2.18 2020年6月17日
1.2.17 2020年6月15日
1.2.7 2020年5月31日
1.1.13 2020年4月30日

#2136异步

Download history 95/week @ 2024-07-22

95 每月下载量

GPL-3.0+

40KB
921 代码行

lelet

类似于golang的任务执行器

Lelet执行器

受golang运行时启发的任务执行器。

执行器在线程池中运行,当它检测到任务内部存在阻塞调用时,它会自动扩展线程池。

正因为这个特性,你可以在任务中安全地进行阻塞操作,你不需要担心会阻塞整个执行器线程。

安装

安装cargo add后运行

$ cargo add lelet

示例

use std::thread;
use std::time::Duration;

use futures_timer::Delay;

fn main() {
    lelet::spawn(async {
        for _ in 0..10 {
            Delay::new(Duration::from_secs(1)).await;
            println!("Non-blocking Hello World");
        }
    });

    lelet::spawn(async {
        for _ in 0..10 {
            thread::sleep(Duration::from_secs(1));
            println!("Blocking Hello World");
        }
    });

    thread::sleep(Duration::from_secs(11));
}

依赖项

~1MB
~14K SLoC