#worker #future #async #threading

stateful_async_worker

可利用作future的异步状态化工作线程

3个版本

0.1.2 2021年2月21日
0.1.1 2020年7月30日
0.1.0 2020年7月30日

#1107异步

MIT 许可证

17KB
293 代码行

Rust Docs.rs Crates.io Crates.io License

状态化异步工作线程提供工作线程结构,允许在后台执行同步函数或闭包,并以future的形式异步访问结果。

要同时执行多个函数,可以使用ThreadPool。对于本质上单线程的操作,如磁盘I/O,可以使用WorkerThread

示例

   use stateful_async_worker::WorkerThread;

   async fn example() -> u64 {
       // Create a worker thread that wraps a number.
       let worker = WorkerThread::spawn_with(0u64);

       // Now you can run closures as futures in the background!
       let add_three = worker.work_on(|num: &mut u64| {
           // Do some sophisticated computations here ...
           *num += 3;
           *num
       });
       add_three.await
   }

依赖

~1.5MB
~23K SLoC