🎯 λͺ¨λ“  예제 μ†ŒμŠ€λŠ” β€£μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸŽˆλ°°μ›Œ λ³Ό λ‚΄μš©

βœ… λ™μ‹œμ„± ν”„λ‘œκ·Έλž¨μ„ λͺ…ν™•ν•˜κ³  μ •ν™•ν•˜κ²Œ λ§Œλ“€κ³  잘 λ¬Έμ„œν™”ν•˜λŠ” 데 도움이 λ˜λŠ” 쑰언에 λŒ€ν•΄ μ•Œμ•„λ³Έλ‹€.

πŸ”₯ ITEM 78. 곡유 쀑인 κ°€λ³€ λ°μ΄ν„°λŠ” 동기화해 μ‚¬μš©ν•˜λΌ

synchronized ν‚€μ›Œλ“œλŠ” ν•΄λ‹Ή λ©”μ„œλ“œλ‚˜ 블둝을 ν•œ λ²ˆμ— ν•œ μŠ€λ ˆλ“œμ”© μˆ˜ν–‰ν•˜λ„λ‘ 보μž₯ν•œλ‹€.

λ§Žμ€ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 동기화λ₯Ό 배타적 μ‹€ν–‰, 즉 ν•œ μŠ€λ ˆλ“œκ°€ λ³€κ²½ν•˜λŠ” μ€‘μ΄λΌμ„œ μƒνƒœκ°€ μΌκ΄€λ˜μ§€ μ•Šμ€ μˆœκ°„μ˜ 객체λ₯Ό λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ 보지 λͺ»ν•˜κ²Œ λ§‰λŠ” μš©λ„λ‘œλ§Œ μƒκ°ν•œλ‹€.

λ¨Όμ € 이 κ΄€μ μ—μ„œ μ–˜κΈ°ν•΄λ³΄μž.

ν•œ 객체가 μΌκ΄€λœ μƒνƒœλ₯Ό κ°€μ§€κ³  μƒμ„±λ˜κ³ , 이 객체에 μ ‘κ·Όν•˜λŠ” λ©”μ„œλ“œλŠ” κ·Έ 객체에 락을 건닀.

락을 건 λ©”μ„œλ“œλŠ” 객체의 μƒνƒœλ₯Ό ν™•μΈν•˜κ³  ν•„μš”ν•˜λ©΄ μˆ˜μ •ν•œλ‹€.

즉, 객체λ₯Ό ν•˜λ‚˜μ˜ μΌκ΄€λœ μƒνƒœμ—μ„œ λ‹€λ₯Έ μΌκ΄€λœ μƒνƒœλ‘œ λ³€ν™”μ‹œν‚¨λ‹€.

동기화λ₯Ό μ œλŒ€λ‘œ μ‚¬μš©ν•˜λ©΄ μ–΄λ–€ λ©”μ„œλ“œλ„ 이 객체의 μƒνƒœκ°€ μΌκ΄€λ˜μ§€ μ•ŠλŠ” μˆœκ°„μ„ λ³Ό 수 없을 것이닀.

λ§žλŠ” μ„€λͺ…μ΄μ§€λ§Œ, λ™κΈ°ν™”μ—λŠ” μ€‘μš”ν•œ κΈ°λŠ₯이 ν•˜λ‚˜ 더 μžˆλ‹€.

동기화 μ—†μ΄λŠ” ν•œ μŠ€λ ˆλ“œκ°€ λ§Œλ“  λ³€ν™”λ₯Ό λ‹€λ₯Έ μŠ€λ ˆλ“œμ—μ„œ ν™•μΈν•˜μ§€ λͺ»ν•  수 μžˆλ‹€.

λ™κΈ°ν™”λŠ” 일관성이 κΉ¨μ§„ μƒνƒœλ₯Ό λ³Ό 수 μ—†κ²Œ ν•˜λŠ” 것은 λ¬Όλ‘ , λ™κΈ°ν™”λœ λ©”μ„œλ“œλ‚˜ 블둝에 λ“€μ–΄κ°„ μŠ€λ ˆλ“œκ°€ 같은 락의 λ³΄ν˜Έν•˜μ— μˆ˜ν–‰λœ λͺ¨λ“  이전 μˆ˜μ •μ˜ μ΅œμ’… κ²°κ³Όλ₯Ό 보게 ν•΄μ€€λ‹€.