Rust編程進階:045、線程與move閉包

例子:

use std::thread;

fn main() {
    let v = vec![1, 2, 3];

    let handle = thread::spawn(move || { // 把變量v移動到子線程中
        println!("v: {:?}", v);
    });

    // println!("in main thread, v: {:?}", v); // 主線程不能再使用變量v
    handle.join().unwrap();
}

// fn main() {
//     let v = vec![1, 2, 3];

//     let handle = thread::spawn(|| {
//         //sleep(10)
//         println!("v: {:?}", v);
//     });

//     //drop(v);

//     handle.join().unwrap();
// }

本節全部源代碼:
https://github.com/anonymousGiga/learn_rust/blob/master/learn_thread2/src/main.rs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章