Mutex<i32>
루프 첫 반복에서 counter가 이동되어 다음 반복에서 쓸 수 없습니다.
Arc, 변경은 MutexGuard가 맡는다
여러 스레드가 같은 카운터를 보려면 소유권 공유와 배타 변경을 각각 다른 타입에 맡겨야 합니다.
Mutex<i32>루프 첫 반복에서 counter가 이동되어 다음 반복에서 쓸 수 없습니다.
Rc<Mutex<i32>>Rc의 카운트 갱신은 스레드 안전하지 않아 Send가 아닙니다.
Arc<Mutex<i32>>Arc가 안전하게 공유하고, Mutex가 한번에 한 변경만 허용합니다.
Arc::clone각 스레드가 같은 뮤텍스 값을 가리키는 소유 핸들을 받습니다.
lock().unwrap()락을 얻은 스레드 하나만 내부 정수를 가변으로 볼 수 있습니다.
*num += 1가드가 살아 있는 짧은 구간에서만 공유 카운터를 수정합니다.
Result: 10모든 핸들을 조인한 뒤 마지막 락으로 최종 값을 읽습니다.
타입은 데이터 경합을 막아 주지만 논리적 데드락까지 자동으로 없애지는 않습니다. 여러 뮤텍스를 함께 잡는 코드라면 락 순서와 가드 수명을 짧게 유지하는 설계가 필요합니다.