1
我有一個哈希:如何讓一個從HashMap中刪除的線程和另一個插入的線程?
let mut hash: HashMap<String, Vec<i32>> = HashMap::new();
和我啓動一個線程:
thread::spawn(move || delete_from(&mut hash));
fn delete_from(m: &mut HashMap<String, Vec<i32>>) {
loop {
m.remove(a_key)
}
}
這個偉大工程。我在那裏有一個sleep
語句(未顯示),它正確地生成a_key
並從HashMap
中刪除它。打印出來時,我可以看到線程慢慢地移除每個項目。
我要開始第2個線程:
thread::spawn(move || insert_into(&mut hash));
fn insert_into(m: &mut HashMap<String, Vec<i32>>) {
loop {
m.insert(a_string, a_vector);
}
}
被插入。但是,當我添加第二個線程我得到:
捕獲移動值:
hash
[E0382]
什麼是此設置的正確方法?
啊,謝謝U,我現在終於明白生鏽。這是我失蹤的最後一個信息。 –