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