Send와 Sync

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

  • Send: Tκ°€ μŠ€λ ˆλ“œ κ°„ 이동이 μ•ˆμ „ν•˜λ‹€λ©΄, T의 νƒ€μž…μ€ Sendμž…λ‹ˆλ‹€.
  • Sync: &Tκ°€ μŠ€λ ˆλ“œ κ°„ 이동이 μ•ˆμ „ν•˜λ‹€λ©΄, &T의 νƒ€μž…μ€ Syncμž…λ‹ˆλ‹€.

Send와 Sync νŠΈλ ˆμž‡μ€ μ•ˆμ „ν•˜μ§€ μ•Šμ€ νŠΈλ ˆμž‡μž…λ‹ˆλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” νƒ€μž…μ˜ μš”μ†Œλ“€μ΄ λͺ¨λ‘ Send와 Sync νƒ€μž…μ΄λ©΄ μžλ™μœΌλ‘œ 이 νŠΈλ ˆμž‡λ“€μ„ μ μš©μ‹œμΌœ μ€λ‹ˆλ‹€. λ¬Όλ‘  μ—¬λŸ¬λΆ„ 슀슀둜 λ§žλ‹€κ³  μ•Œκ³  μžˆλ‹€λ©΄ 직접 κ΅¬ν˜„ν•΄λ„ λ©λ‹ˆλ‹€.

  • Sync와 SendλŠ” μ–΄λ–€ νƒ€μž…μ΄ νŠΉμ •ν•œ μŠ€λ ˆλ“œ-μ•ˆμ „ 속성을 가짐을 λ‚˜νƒ€λ‚΄λŠ” 마컀둜 생각할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 이 두 νŠΈλ ˆμ΄νŠΈλŠ” μ œλ„ˆλ¦­μ—μ„œ μ œμ•½ 쑰건을 λ‚˜νƒ€λ‚΄λŠ” 트레이트둜 μ‚¬μš©λ  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.