#互斥锁 #同步 # #停车场 #同步 #锁定

simple-mutex

比 std 更高效的互斥锁,比 parking_lot 更简单

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 并发

Download history 14802/week @ 2024-04-08 14969/week @ 2024-04-15 13971/week @ 2024-04-22 11243/week @ 2024-04-29 11071/week @ 2024-05-06 18488/week @ 2024-05-13 16957/week @ 2024-05-20 14876/week @ 2024-05-27 14114/week @ 2024-06-03 14621/week @ 2024-06-10 16435/week @ 2024-06-17 12211/week @ 2024-06-24 13240/week @ 2024-07-01 11635/week @ 2024-07-08 14299/week @ 2024-07-15 13243/week @ 2024-07-22

53,336 每月下载量
用于 4 个 Crates(直接使用 2 个)

Apache-2.0 OR MIT

14KB
170

simple-mutex

Build License Cargo Documentation

一个简单的互斥锁。

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 许可证定义,您有意提交的任何贡献,均应按上述方式双重许可,不附加任何额外的条款或条件。

依赖关系

~135KB