18.1 Threads

Rust가 제공하는 spawn함수를 통해 네이티브 OS의 쓰레드를 생산하는 메커니즘을 제공하며, 이 함수의 인자는 moving closure이다.

use std::thread;

static NTHREADS: i32 = 10;

// 메인 함수는 `main` thread
fn main() {
    // 생성되는 쓰레드 결과물을 관리할 벡터를 만든다.
    let mut children = vec![];

    for i in 0..NTHREADS {
        // 또 다른 쓰레드들을 돌아가며 수행. 
        children.push(thread::spawn(move || {
            println!("this is thread number {}", i)
        }));
    }

    for child in children {
        // 쓰레드가 종료될 때까지 기다렸다 결과 반환.
        let _ = child.join();
    }
}

이 쓰레드들은 OS에 의해 조정될 것이다.

results matching ""

    No results matching ""