[rust] Rust의 스레드 조인

Rust는 멀티스레딩을 지원하며 여러 스레드 간의 작업을 조정하기 위해 join 메서드를 제공합니다. 이 메서드를 사용하면 여러 스레드가 생성되어 실행된 후, 모든 스레드가 종료될 때까지 기다릴 수 있습니다.

use std::thread;

fn main() {
    let mut handles = vec![];

    for i in 0..5 {
        // 새로운 스레드를 생성하고 핸들을 벡터에 추가합니다.
        handles.push(thread::spawn(move || {
            println!("스레드 {}가 시작됨", i);
        }));
    }

    for handle in handles {
        // 스레드의 종료를 기다립니다.
        handle.join().unwrap();
    }
}

위 예제에서는 0부터 4까지의 값을 갖는 5개의 스레드를 생성하고, 각 스레드의 핸들을 handles 벡터에 추가합니다. 이후, handles 벡터를 순회하며 각 스레드의 종료를 기다리고 있습니다.

요약

Rust의 join 메서드를 사용하면 여러 스레드 간의 작업을 조정할 수 있으며, 모든 스레드가 종료될 때까지 대기할 수 있습니다. 이를 통해 스레드 간의 작업을 조율하고 안전하게 완료할 수 있습니다.


참고:
Rust Documentation