Arc — 원자적 참조 카운트 공유 포인터
Arc — 원자적 참조 카운트 공유 포인터
Arc<T>는 원자적(atomic) 참조 카운트를 사용해 여러 스레드가 값을 공유하게 해 주는 스마트 포인터예요. Rc의 스레드 안전 버전이에요.
출처: Rust 공식 문서
본문
pub struct Arc<T, A = Global>
where A: Allocator,
T: ?Sized,
{ /* private fields */ }
Arc::new(x)로 만들고 clone()하면 같은 값을 가리키는 또 다른 Arc가 생기고 참조 카운트가 1 늘어나요. 마지막 참조가 사라질 때 값이 해제돼요. 내부 값은 불변으로 공유되며, 수정이 필요하면 Mutex나 RwLock과 조합해요. T: Send + Sync일 때만 다른 스레드로 옮길 수 있어요.