Send는 이동 가능성, Sync는 공유 참조 가능성을 말한다
타입이 스레드 사이를 건너갈 수 있는지와 여러 스레드에서 &T를 공유할 수 있는지는 별도 기준이다.
thread::spawn 입력
공유 참조 안전
| 구분 | 의미 | 판단 |
|---|---|---|
| T: Send | 소유권 이동 안전 | 값 자체가 스레드 경계 통과 |
| T: Sync | &T 공유 안전 | 참조를 여러 스레드에서 읽음 |
| Rc<T> | Send/Sync 아님 | 비원자 카운트 |
| Arc<T> | 조건부 Send/Sync | 원자 카운트 |
핵심 marker trait는 직접 호출하는 API가 아니라 컴파일러의 스레드 안전 판정표다.