【发布时间】:2014-11-29 18:00:30
【问题描述】:
编者注——这个例子是在 Rust 1.0 之前创建的,从那时起特定类型已经改变或被删除。一般问题和概念仍然有效。
我已经生成了一个线程,里面有一个无限循环和计时器。
thread::spawn(|| {
let mut timer = Timer::new().unwrap();
let periodic = timer.periodic(Duration::milliseconds(200));
loop {
periodic.recv();
// Do my work here
}
});
根据某些条件,经过一段时间后,我需要从程序的另一部分终止该线程。换句话说,我想退出无限循环。我怎样才能正确地做到这一点?另外,我怎么能暂停这个线程并在以后恢复它?
我尝试使用全局不安全标志来打破循环,但我认为这个解决方案看起来不太好。
【问题讨论】:
标签: multithreading rust