Rust 程序设计语言 简体中文版 1.85.0或者长时间运行的任务,亦或有一个 future 会无限持续运行某些特定任务的话,你会需要思 考在何时何地将控制权交还运行时。 同样地,如果你有长时间运行的阻塞操作,异步可能是一个提供了将程序的不同部分相互关联 起来的实用工具。 不过在这种情况下 如何 将控制权交还运行时呢? Yielding 让我们模拟一个长时间运行的操作。示例 17-22 引入了一个 slow 函数。它使用 std::thread::sleep as_secs_f32() ); 使用 yield_now 的版本要 快得多! 这意味着取决于程序所作的其它工作,异步操作甚至在计算密集型任务中也有用处,因为它提 供了一个结构化程序中不同部分之间关系的实用工具。这是一种形式的 协同多任务处理 (cooperative multitasking),每个 future 有权通过 await point 来决定何时交还控制权。因此 每个 future 也有责任避免长时间阻塞。在一些基于0 码力 | 562 页 | 3.23 MB | 25 天前3
共 1 条
- 1













