结构S
实际上可能是一些大数据,例如大Vec
。 如果我只有一个线程,并且在创建线程后不使用数据,则可以将数据移至该线程,但是如果有两个线程(或在主线程中使用相同的数据),则不可能。
struct S {
i : i32,
}
fn thr(s : &S)
{
}
fn main()
{
let s1 = S { i:1 };
thr(&s1);
let t1 = std::thread::spawn(|| thr(&s1)); // does not work
let t2 = std::thread::spawn(|| thr(&s1)); // does not work
t1.join();
t2.join();
}