[rust] Rust 스레드와 동기화

Rust는 안전하고 병렬성을 갖춘 시스템 프로그래밍 언어로, 스레드 기능과 동기화 기능을 제공합니다. 이 기능들을 사용하여 병렬 처리를 구현하고 데이터 공유를 안전하게 관리할 수 있습니다.

스레드 생성

Rust에서 스레드를 생성하려면 std::thread 모듈을 사용합니다. 다음은 스레드를 생성하고 실행하는 간단한 예제 코드입니다.

use std::thread;

fn main() {
    let handle = thread::spawn(|| {
        // 스레드에서 수행할 작업
    });

    // 스레드의 결과를 기다림
    handle.join().unwrap();
}

메시지 전달을 통한 동기화

Rust의 std::sync::mpsc 모듈을 사용하여 여러 스레드 간에 메시지를 전달하고 동기화할 수 있습니다. 다음은 간단한 예제 코드입니다.

use std::sync::mpsc;
use std::thread;

fn main() {
    let (sender, receiver) = mpsc::channel();

    let handle = thread::spawn(move || {
        sender.send("Hello, Rust!").unwrap();
    });

    let received = receiver.recv().unwrap();
    println!("Received: {}", received);
}

이렇게하여 Rust를 사용하면 병렬성을 갖춘 안전한 시스템 프로그래밍을 할 수 있습니다.

더 자세한 내용은 Rust 공식 문서를 참고하세요.