Mutex
는 보통 smart pointer가 보유하는 컨테이너 데이터 구조로서,
데이터를 가져오거나 내부 데이터에 대한 mutable 또는 immutable한 참조를 대여할 수 있게 해줍니다.
이는 잠긴 대여를 통해 운영체제가 동시에 오직 하나의 CPU만 데이터에 접근 가능하도록 하고,
원래 쓰레드가 끝날 때까지 다른 쓰레드들을 막음으로써 대여가 남용되는 것을 방지합니다.
멀티쓰레드는 Tour of Rust의 범위를 벗어나지만, Mutex
는
여러 개의 CPU 쓰레드가 같은 데이터에 접근하는 것을 조율하는 근본적인 부분입니다.
특별한 smart pointer인 Arc
도 있는데, 쓰레드-안전성을 가진 참조 카운트 증가 방식을 사용한다는 것을 제외하고는 Rc
와 동일합니다.
이는 동일한 Mutex
에 다수의 참조를 가질 때 종종 사용되곤 합니다.