최대 1 분 소요

개요

  • 소유권과 타입 시스템이 메모리 안전성 및 동시성 문제를 관리하는 것을 돕기 위한 강력한 도구들의 집합
  • 많은 동시성 에러들이 런타임이 아닌 컴파일 시점에 감지 가능
  • thread::spawn 함수를 이용
    • 반환 타입
    • JoinHandle


예제

  • 코드

        use std::thread;
        use std::time::Duration;

        fn main() {
            println!("main start");

            let handle1 = thread::spawn(|| {
                println!("thread start");

                thread::sleep(Duration::from_secs(1));

                println!("thread end");
            });

            let v = vec![1, 2, 3];
            let handle2 = thread::spawn(move || {
                println!("{:?}", v);
            });

            handle1.join().unwrap();
            handle2.join().unwrap();

            println!("main end");
        }
  • 실행 결과

        main start
        thread start
        [1, 2, 3]
        thread end
        main end