#thread-pool #thread

poolter

使用JavaScript Promise类似函数语法的Rust线程池实现

1个不稳定版本

使用旧的Rust 2015

0.1.0 2017年3月2日

#763并发

MIT 许可证

5KB
93

PoolTer

这是一个非常基础的Rust线程池库,主要设计为受JavaScript Promise结构启发的并发任务运行机制。

[dependencies]
poolter = "*"

欢迎贡献

这是一个基础库,但如果您发现一些错误或代码逻辑错误,请随时提交拉取请求或创建一个问题。

extern crate poolter;

use poolter::PoolTer;

.......
let mut pool = PoolTer::init();

init() 函数将根据CPU核心数启动线程,并将监听回调函数以使用基本的Round Rubin轮询在可用线程上运行。这提供了在多个核心上分配负载的优势,并保持了简单性。

因此,现在我们可以使用类似基本的JavaScript Promise的代码语法在线程循环中运行函数

// This will be executing in Thread 1
pool.exec(Box::new(move || {
  println!("This will run first in Thread 1 !");
})).then(Box::new(move || {
  println!("After that we will call this one in Thread 1 !");
}));

// This will be executing in Thread 2
pool.exec(Box::new(move || {
  println!("This will run first in Thread 2 !");
})).then(Box::new(move || {
  println!("After that we will call this one in Thread 2 !");
}));

欢迎贡献

这是一个基础库,但如果您发现一些错误或代码逻辑错误,请随时提交拉取请求或创建一个问题。

依赖项

~79KB