[Java] synchronized ๋ธ๋ญ ์ธ์
synchronized ๋ธ๋ญ์ ๋ํ์ ์ธ ์๋ฐ์ ๋๊ธฐํ ๋ฌธ๋ฒ์ด๋ค.
์ธ์๋ก ์ ๊ธ์ ๊ธฐ์ค์ด ๋ ๋ณ์๋ฅผ ๋๊ธฐ๊ณ , ๊ทธ๊ฑธ๋ก ํฌ๋ฆฌํฐ์ปฌ ์น์
์ ๋ง๋ค์ด๋ธ๋ค.
๊ทผ๋ฐ ํํ ์ฝ๋๋ค์ ๋ณด๋ฉด this๋ฅผ ์ธ์๋ก ๋๊ธฐ๋๊ฒ ๋ณด์ด๊ณค ํ๋ค.

๊ฐ์ฒด ์๊ธฐ์์ ์ ๋๊ธฐํ์ ๋ํ ๊ธฐ์ค์ผ๋ก ์ผ๋๋ค๋ ๊ฒ์ด๋ค.
์ด์ฐจํผ ์ด ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ์ค๋ ๋์์ ๋๋๋ผ๋ ๊ฐ์ฒด๋ ํ๋๋๊น,
๊ทธ๋ ๊ฒ ํ๋ฆฐ ์ฝ๋๋ ์๋๊ณ ๋์ฒด๋ก๋ ์ ์๋ํ๋ค.
๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ์ ๋ฌด์กฐ๊ฑด ๊ฐ์ฒด ๋จ์๋ก๋ง ์ ๊ธ์ด ์ค์ ๋๊ธฐ ๋๋ฌธ์, ์ ์ฐํ ํ๋ฆ์ ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๊ฒ๋ค๊ฐ this๋ก ์กํ ์ ๊ธ์ Thread.join์ผ๋ก ํ๋ฆด ์๋ ์๋ค๊ณ ํ๋ค.(์์ธํ๋ ๋ชจ๋ฆ)
์ฌํผ ๋ฐ๋์งํ ๊ตฌ์กฐ๋ก ๋๊ธฐํ๋ฅผ ๊ตฌ์ฑํ๊ณ ์ถ๋ค๋ฉด, Object ๋ฑ์ ํ์
์ผ๋ก ์ ๊ธ๋ณ์๋ฅผ ํ๋ ์ด์ ์ ์ธํ๊ณ ๊ด๋ฆฌํด์ฃผ๋๊ฒ ์ข๋ค.
์ด๋ ๊ฒ


์ฐธ์กฐ
https://www.slipp.net/questions/179
https://stackoverflow.com/questions/442564/avoid-synchronizedthis-in-java/39438754