Rust 程序设计语言 简体中文版 1.85.0("'slow' started."); trpl::sleep(Duration::from_millis(100)).await; println!("'slow' finished."); }; let fast = async { println!("'fast' started."); println!("'fast' finished."); }; trpl::race(slow, fast).await; 请注意如果你反转 race 参数的顺序,“started” 消息的顺序会改变,即使 fast future 总是第 一个结束。这是因为这个特定的 race 函数实现并不是公平的。它总是以传递的参数的顺序来 运行传递的 futures。其它的实现 是 公平的,并且会随机选择首先轮询的 只会在进行了一系列缓慢操作 之后 才将控制权交还给运行时。 文件名:src/main.rs let a = async { println!("'a' started."); slow("a", 30); slow("a", 10); slow("a", 20);0 码力 | 562 页 | 3.23 MB | 22 天前3
共 1 条
- 1













