Rc strong count

Rc::clone은 값 복사가 아니라 소유자 수를 늘린다

같은 리스트 데이터를 여러 곳에서 읽어야 할 때 Rc<T>는 힙 값을 그대로 두고 참조 카운트만 관리합니다.

카운트 타임라인

1

a 생성

Rc::new가 리스트 소유자 하나를 만듭니다.

2

b가 공유

Rc::clone으로 b가 같은 리스트를 가리킵니다.

3

c 스코프 진입

안쪽 스코프에서 c가 만들어져 strong_count가 3이 됩니다.

2

c 스코프 종료

c가 버려지면 Drop이 자동으로 카운트를 하나 줄입니다.

핵심 정리

Rc<T>는 읽기 전용 공유 소유권을 표현합니다. 값의 마지막 사용 지점을 컴파일 타임에 알기 어려울 때 카운트가 생존 조건이 됩니다.