Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

스레드

Rust는 spawn 함수를 통해 네이티브 OS 스레드를 생성하는 메커니즘을 제공합니다. 이 함수의 인자는 이동(moving) 클로저입니다.

use std::thread;

const NTHREADS: u32 = 10;

// 메인 스레드입니다
fn main() {
    // 생성된 자식 스레드들을 담을 벡터를 만듭니다.
    let mut children = vec![];

    for i in 0..NTHREADS {
        // 또 다른 스레드를 생성합니다
        children.push(thread::spawn(move || {
            println!("이것은 {}번 스레드입니다", i);
        }));
    }

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

이러한 스레드들은 OS에 의해 스케줄링됩니다.