8 个稳定版本
1.1.5 | 2020年5月27日 |
---|---|
1.1.4 | 2020年5月26日 |
1.1.1 | 2020年5月25日 |
1.0.1 | 2020年5月23日 |
#1154 in 并发
53,336 每月下载量
用于 4 个 Crates(直接使用 2 个)
14KB
170 行
simple-mutex
一个简单的互斥锁。
比 std::sync::Mutex
更高效,比 parking_lot::Mutex
更简单。
锁定机制使用最终公平性以确保平均锁定是公平的,而不牺牲性能。这是通过强制在超过 0.5 毫秒的锁定操作饥饿时强制公平锁来实现的。
示例
use simple_mutex::Mutex;
use std::sync::Arc;
use std::thread;
let m = Arc::new(Mutex::new(0));
let mut threads = vec![];
for _ in 0..10 {
let m = m.clone();
threads.push(thread::spawn(move || {
*m.lock() += 1;
}));
}
for t in threads {
t.join().unwrap();
}
assert_eq!(*m.lock(), 10);
许可证
许可协议为以下之一
- Apache 许可证 2.0 版(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,均应按上述方式双重许可,不附加任何额外的条款或条件。
依赖关系
~135KB