穿梭 Shuttle是用于测试并发Rust代码的库。 它是许多随机并发测试技术的实现,包括。 入门 考虑以下简单的并发代码: use std :: sync :: {Arc, Mutex}; use std :: thread; let lock = Arc :: new (Mutex :: new ( 0u64 )); let lock2 = lock. clone (); thread :: spawn ( move || { * lock. lock (). unwrap () = 1 ; }); assert_eq! ( 0 , * lock2. lock (). unwrap ()); 这里有一个明显的竞争条件:如果派生的线程在断言之前运行,则断言将失败。 但是编写一个可以找到执行结果的单元测试是很棘手的。 我们可以多次运行测试,并通过查找失败的执行尝试“幸运”,但