SendSync

How does Rust know to forbid shared access across threads? The answer is in two traits:

  • Send: T가 스레드 간 이동이 안전하다면, T의 타입은 Send입니다.
  • Sync: &T가 스레드 간 이동이 안전하다면, &T의 타입은 Sync입니다.

SendSync 트레잇은 안전하지 않은 트레잇입니다. 컴파일러는 타입의 요소들이 모두 SendSync 타입이면 자동으로 이 트레잇들을 적용시켜 줍니다. 물론 여러분 스스로 맞다고 알고 있다면 직접 구현해도 됩니다.

  • SyncSend는 어떤 타입이 특정한 스레드-안전 속성을 가짐을 나타내는 마커로 생각할 수 있습니다.
  • 이 두 트레이트는 제너릭에서 제약 조건을 나타내는 트레이트로 사용될 수도 있습니다.