18 个版本
0.2.6 | 2024年3月25日 |
---|---|
0.2.4 | 2022年8月21日 |
0.2.3 | 2019年4月19日 |
0.2.2 | 2019年3月8日 |
0.0.5 | 2017年3月26日 |
#292 在 并发 中
4,940 每月下载量
用于 50 个 Crates (3 直接)
54KB
1K SLoC
Qutex 
基于 Rust futures 的非线程阻塞队列后端数据锁。
包含 Mutex
和 RwLock
的 futures 兼容版本。
文档
示例
Cargo.toml
:
[dependencies]
qutex = "0.2"
main.rs
:
extern crate qutex;
extern crate futures;
use std::thread;
use futures::Future;
use qutex::Qutex;
fn main() {
let thread_count = 100;
let mut threads = Vec::with_capacity(thread_count);
let start_val = 0;
let qutex = Qutex::new(start_val);
for _ in 0..thread_count {
let future_val = qutex.clone().lock();
let future_add = future_val.map(|mut val| {
*val += 1;
});
threads.push(thread::spawn(|| {
future_add.wait().unwrap();
}));
}
for thread in threads {
thread.join().unwrap();
}
let val = qutex.lock().wait().unwrap();
assert_eq!(*val, start_val + thread_count);
println!("Qutex final value: {}", *val);
}
依赖
~155–315KB