7个版本
使用旧Rust 2015
0.1.5 | 2019年8月19日 |
---|---|
0.1.4 | 2018年1月19日 |
0.1.0 | 2017年12月20日 |
0.0.1 | 2017年12月19日 |
#894 在 并发
每月 125 次下载
被 12 个crate使用 (通过 fibers_tasque)
16KB
331 行
tasque
Rust的一个简单线程池库。
lib.rs
:
Rust的一个简单线程池库。
示例
基本使用
use std::sync::mpsc;
use std::thread;
use std::time::Duration;
use tasque::TaskQueueBuilder;
// Creates a task queue.
// This queue spawns worker threads for executing tasks.
let queue = TaskQueueBuilder::new().worker_count(3).finish();
// Executes asynchronous tasks.
let (tx, rx) = mpsc::channel();
for (i, tx) in (0..3).map(|i| (i, tx.clone())) {
queue.enqueue(move || {
thread::sleep(Duration::from_millis(20 - i * 10));
let _ = tx.send(i);
});
}
// Waits results.
assert_eq!(rx.recv().ok(), Some(2));
assert_eq!(rx.recv().ok(), Some(1));
assert_eq!(rx.recv().ok(), Some(0));
依赖项
~1.4–1.8MB
~43K SLoC