2 个版本

0.1.1 2023 年 12 月 19 日
0.1.0 2023 年 12 月 19 日

#849 in 并发

自定义许可证

32KB
700

JThread-rs - 无死锁互斥锁库

JThread 是一个 Rust 库,旨在简化多线程环境中的高级互斥锁管理,同时提供 无死锁。它提供具有细粒度控制的互斥锁,以及定制的错误处理,以实现无死锁。

功能

  • RegionJMutex 用于高级互斥锁锁定策略。
  • 自定义错误类型 (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