[Rust] 동시성
Updated:
개요
- 소유권과 타입 시스템이 메모리 안전성 및 동시성 문제를 관리하는 것을 돕기 위한 강력한 도구들의 집합
- 많은 동시성 에러들이 런타임이 아닌 컴파일 시점에 감지 가능
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
-