#thread #tasks #executing #concurrently #runner #thread-pool #how

bin+lib threadrunner

A rust 库,用于并发执行任务

2 个不稳定版本

0.2.0 2023年4月2日
0.1.0 2023年3月29日

#1413 in 异步

MIT 许可证

15KB
138

ThreadRunner

ThreadRunner 是一个用于并发执行任务的 Rust 库。

它目前包含以下内容

  • ThreadPool: 使用线程池来处理昂贵的计算。

  • AsyncRuntime: 无缝地将异步代码集成到您的同步代码中。

安装

您可以通过将以下内容添加到您的 Cargo.toml 文件中的依赖项部分来在项目中使用 thread_runner

thread_runner= "0.2.0"

[dependencies]
thread_runner = "0.2.0"

或者,您可以在项目目录中运行以下命令

cargo add thread_runner

这将添加 "thread_runner" 的最新版本到您的 Cargo.toml 文件中

使用方法

此软件包包含模块、结构体和函数级别的文档,以帮助您了解如何使用它中的各种功能及其用法

示例 1

use thread_runner::ThreadPool;

let executor = ThreadPool::new(4);

for val in 0..10 {
    executor.execute(move || println!("{}", val));
}
executor.join();

示例 2

use thread_runner::{AsyncRuntime, AsyncFlavor};
use std::time::Duration;

let rt = AsyncRuntime::new(AsyncFlavor::CurrentThread);

// Spawn a future on the runtime.
rt.execute(async {
     // Do some asynchronous work here...
});

// Poll a future on the runtime and block until it completes.
let result = rt.poll(async {
    // Do some asynchronous work here and return a value...
    42
});

// Shut down the runtime after a specified timeout duration.
rt.terminate(Duration::from_secs(1));

贡献

所有贡献和建议都受欢迎。以下是一些您可以贡献的方式

  • 问题:通过创建问题来报告错误或提出改进建议。

  • 拉取请求:通过创建拉取请求来提出对代码库的更改。

  • 文档:为帮助用户了解如何使用软件做出贡献。

  • 测试:测试软件并报告您发现的任何错误或问题。

所有贡献,无论大小,都是宝贵的,并且受到赞赏。感谢您对为该项目做出贡献的兴趣!

许可证

本项目受 MIT 许可证许可 - 请参阅 LICENSE 文件以获取详细信息。

依赖项

~2-3MB
~47K SLoC