2 个版本
0.1.1 | 2020年10月22日 |
---|---|
0.1.0 | 2020年10月22日 |
#622 在 并发
22KB
235 行
Context-thread
在上下文中运行的线程。
大多数情况下,生命周期超过父线程的线程被视为代码问题。《code>ctx-thread 确保在返回作用域之前将所有线程连接。子线程可以访问上下文对象,它们可以使用它来轮询线程组的状态。如果其中一个线程崩溃,上下文将被取消。
作用域
此库基于 crossbeam 的作用域线程
use ctx_thread::scope;
let people = vec![
"Alice".to_string(),
"Bob".to_string(),
"Carol".to_string(),
];
scope(|ctx| {
for person in &people {
ctx.spawn(move |_| {
println!("Hello, {}", person);
});
}
}).unwrap();
上下文
除了引用外部作用域之外,线程还可以检查额外的方法和在需要时返回
use ctx_thread::scope;
scope(|ctx| {
ctx.spawn(|ctx| {
while ctx.active() {
// do work
}
});
ctx.spawn(|ctx| {
ctx.cancel();
});
}).unwrap();
请注意,这些基于上下文的取消是一种协同调度形式。即使上下文已过期,线程仍然可以阻塞。
依赖项
~115KB