1
E0382
Mutex<i32>를 클로저로 직접 이동
let counter = Mutex::new(0);
판단
첫 반복에서 소유권이 이동되어 다음 반복의 스레드가 같은 값을 받을
수 없습니다.
Arc<Mutex<T>>에
도착합니다
카운터를 10개 스레드가 함께 증가시키려면 값 보호와 스레드 안전한 복수 소유권이 동시에 필요합니다.
Mutex<i32>를 클로저로 직접 이동let counter = Mutex::new(0);
Rc<Mutex<i32>>로 복수 소유 시도let counter = Rc::new(Mutex::new(0));
Rc<T>는 참조 카운트를 스레드 안전하게 바꾸지
않아 Send가 아닙니다.
Arc<Mutex<i32>>로 스레드 안전 공유let counter = Arc::new(Mutex::new(0));
Arc가 소유권을 공유하고 Mutex가 한 번에
한 스레드의 가변 접근을 보장합니다.