4 个版本
使用旧的 Rust 2015
0.1.0 | 2016年7月3日 |
---|---|
0.0.3 | 2015年9月12日 |
0.0.2 | 2015年9月12日 |
0.0.1 | 2015年9月12日 |
#16 in #构造
821 每月下载量
在 5 个crate中使用 (3 直接使用)
15KB
339 行
monitor_rs
一个方便的库,提供了在Rust中使用Mutex+Condvar组合的更简单方式。这个概念被称为监控器同步构造,类似于Java的synchronized()语句。
许可:MIT
用法
在您的 Cargo.toml
中添加以下内容
[dependencies]
monitor = "0.1.0"
并在您的crate根目录下添加以下内容
extern crate monitor;
示例
extern crate monitor;
use std::time::Duration;
use std::sync::Arc;
use std::thread;
use monitor::Monitor;
fn main() {
let mon = Arc::new(Monitor::new(false));
{
let mon = mon.clone();
let _ = thread::spawn(move || {
thread::sleep(Duration::from_millis(1000));
mon.with_lock(|mut done| { // done is a monitor::MonitorGuard<bool>
*done = true;
done.notify_one();
});
});
}
mon.with_lock(|mut done| {
while !*done {
done.wait();
}
println!("finished waiting");
});
}
更多示例,请参阅lib.rs中的测试。