2 个不稳定版本

0.2.0 2022 年 12 月 21 日
0.1.0 2022 年 12 月 21 日

#1039并发

MIT 许可证

14KB
289

Rust 中的队列读写锁实现

这种读写锁使用票据互斥锁作为等待队列,类似于 FIFO。它允许避免读者或写者的不公平和饥饿,这是通用读写锁(读优先或写优先)的常见问题

示例

extern crate qrwlock;
use std::{sync::Arc, thread};

fn main() {
    let counter = Arc::new(qrwlock::RwLock::new(0));

    let thread = thread::spawn({
        let counter = counter.clone();
        move || {
            for _ in 0..1000 {
                *counter.write() += 1;
            }
        }
    });

    for _ in 0..1000 {
        println!("read {}", *counter.read());
    }

    thread.join().unwrap();

    assert_eq!(*counter.read(), 1000);
}

许可证

qrwlock 根据 MIT 许可证分发,(见 LICENSE)。


lib.rs:

此包提供公平的读写锁,不易发生读者或写者饥饿

依赖项

~190KB