diff --git a/src/async-rust/tokio/spawning.md b/src/async-rust/tokio/spawning.md index fb88590f..9682319e 100644 --- a/src/async-rust/tokio/spawning.md +++ b/src/async-rust/tokio/spawning.md @@ -171,7 +171,7 @@ help: to force the async block to take ownership of `v` (and any other 但是 `move` 有一个问题,一个数据只能被一个任务使用,如果想要多个任务使用一个数据,就有些强人所难。不知道还有多少同学记得 [`Arc`](https://course.rs/advance/smart-pointer/rc-arc.html),它可以轻松解决该问题,还是线程安全的。 -在上面的报错中,还有一句很奇怪的信息`function requires argument type to outlive 'static`, 函数要求参数类型的生命周期必须比 `'static` 长,问题是 `'static` 已经活得跟整个程序一样久了,难道函数的参数还能活得更久?大家可能会觉得编译器秀逗了,毕竟其它语言编译器也有秀逗的时候:) +在上面的报错中,还有一句很奇怪的信息```function requires argument type to outlive `'static` ```, 函数要求参数类型的生命周期必须比 `'static` 长,问题是 `'static` 已经活得跟整个程序一样久了,难道函数的参数还能活得更久?大家可能会觉得编译器秀逗了,毕竟其它语言编译器也有秀逗的时候:) 先别急着给它扣帽子,虽然我有时候也想这么做。。原因是它说的是类型必须活得比 `'static` 长,而不是值。当我们说一个值是 `'static` 时,意味着它将永远存活。这个很重要,因为编译器无法知道新创建的任务将存活多久,所以唯一的办法就是让任务永远存活。