2 个版本
0.1.1 | 2023 年 12 月 19 日 |
---|---|
0.1.0 | 2023 年 12 月 19 日 |
#849 in 并发
32KB
700 行
JThread-rs - 无死锁互斥锁库
JThread 是一个 Rust 库,旨在简化多线程环境中的高级互斥锁管理,同时提供 无死锁。它提供具有细粒度控制的互斥锁,以及定制的错误处理,以实现无死锁。
功能
Region
和JMutex
用于高级互斥锁锁定策略。- 自定义错误类型 (
JError
) 用于特定的互斥锁和区域相关错误。 - 方便的
sync
宏,用于轻松且安全地锁定一个或多个互斥锁。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
jthread = "0.1.0"
用法
锁创建
use jthread::{JMutex, Region};
let region = Region::new();
let mutex = JMutex::new(5, region); // Protecting an integer
使用 sync
宏
use jthread::{JMutex, sync, Region};
let data_mutex = JMutex::with_default(5); // Protecting an integer
let result = sync!([data_mutex], |data_guard| {
*data_guard += 1; // Modify the data
*data_guard
});
我们的 tests
模块包含使用 JThread 设置的著名就餐哲学家问题。请随意参考模块中提供的变体,作为高级用例。
测试
库包含一个全面的测试套件,展示了其功能,特别是在复杂的多线程场景中。请参阅测试模块以获取示例和用法模式。
文档
有关每个组件和方法的更详细信息,请参阅库源代码中的内联文档,该文档使用 Rust 的标准文档工具生成。
依赖关系
~10KB