Shared State

Mutex는 접근을 잠그고 Arc는 여러 스레드의 소유권을 나눈다

공유 상태 동시성은 값을 함께 쓰는 것이 아니라, 누가 언제 접근하는지 제한하는 구조다. MutexGuard가 임계 구역을 만들고 Arc가 스레드 간 소유권을 안전하게 복제한다.

01 공유 포인터 Arc<Mutex<T>>

여러 스레드가 같은 Mutex 소유권을 나눈다.

02 락 획득 lock()

내부 값에 접근하기 전 가드를 얻는다.

03 임계 구역

가드가 살아 있는 동안 값을 읽고 수정한다.

04 자동 해제

가드가 스코프를 벗어나면 다음 스레드가 진입한다.

Rc 한계

Rc는 단일 스레드용이라 스레드 간 공유에 맞지 않는다.

Arc 역할

원자적 참조 카운팅으로 여러 스레드 소유를 허용한다.

Mutex 역할

내부 변경 접근을 한 시점에 하나로 제한한다.

락 범위

가드를 필요 이상으로 오래 들고 있지 않는다.

데드락

여러 락을 잡을 때는 획득 순서를 고정한다.

Poisoning

패닉 이후 lock 결과를 처리하는 경로를 둔다.