#process #lock #cross-platform #multi-process

process_lock

这是为 Rust 实现的进程锁的多进程实现

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年4月24日

#8 in #multi-process

Apache-2.0/MIT

15KB
307 代码行数(不包括注释)

这是为 Rust 实现的进程锁的多进程实现

Build Status Crates.io

使用方法

将此添加到您的 Cargo.toml

[dependencies]
process_lock = "0.1"

并将其添加到您的 crate 根目录

extern crate process_lock;

如何使用

extern crate process_lock;
use std::time::{Duration, Instant};
use process_lock::*;
fn main () {
    let mut lock = ProcessLock::new(String::from(".process_lock"), None).unwrap();
    for i in 0..100 {
        let now = Instant::now();
        {
            let _guard = lock.lock().unwrap();
            println!("success get the {} lock lock all use time ===== {}", i, now.elapsed().as_secs());
            let ten_millis = ::std::time::Duration::from_millis(2000);
            ::std::thread::sleep(ten_millis);
        }
        let ten_millis = ::std::time::Duration::from_millis(100);
        ::std::thread::sleep(ten_millis);
    }
}

每个进程将在其他进程释放锁后获取锁

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,如 Apache-2.0 许可协议中定义的,应按上述方式双许可,无需任何附加条款或条件。

依赖项

~1–270KB