Search
Duplicate
โ›ณ

synchronized ๋™์ž‘ ๋ฐฉ์‹

โ€ข
๋ฎคํ…์Šค(ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋งŒ ์ ‘๊ทผ) ๋ฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹
โ€ข
๋‚ด๋ถ€์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๊ตฌํ˜„
โ€ข
JVM ๋‚ด๋ถ€ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ์œผ๋กœ JVM ๋ ˆ๋ฒจ์—์„œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ โ†’ native method
โ€ข
ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ํ•˜๋‚˜์˜ ๋ชจ๋‹ˆํ„ฐ๊ฐ€ ๋‚ด์žฌ๋˜์–ด ์žˆ์–ด์„œ ๋‘ ๋ฉ”์„œ๋“œ์— sync ๊ฐ€ ๊ฑธ๋ ค์žˆ๊ณ  ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋‘ ๋ฉ”์„œ๋“œ์— ๋™์‹œ์— ์ ‘๊ทผ ์‹œ๋„ํ•˜๋ฉด ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ.
โ€ข
๊ฐ™์€ ํด๋ž˜์Šค์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ผ๋ฉด ์œ„์˜ ๋ฌธ์ œ X

๋ชจ๋‹ˆํ„ฐ

โ€ข
ํ•œ ์“ฐ๋ ˆ๋“œ๊ฐ€ synchronized ๋ธ”๋ก์— ์ง„์ž…ํ•˜๋ฉด ๊ทธ ๊ฐ์ฒด์˜ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ํš๋“
โ€ข
๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๋Š” ๊ทธ ๋ชจ๋‹ˆํ„ฐ๊ฐ€ ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ(๋ฎคํ…์Šค ๋ฝ)
โ€ข
๋ชจ๋‹ˆํ„ฐ๋Š” Java ๊ฐ์ฒด๋งˆ๋‹ค ๋‚ด์žฌ

Reentrant

โ€ข
ํ•œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด์˜ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ๊ฐ™์€ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋‹ค์‹œ ๊ทธ ๋ชจ๋‹ˆํ„ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ, ์ด ๊ฒฝ์šฐ ๋ฝ์„ ํ•ด์ œํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผ ์“ฐ๋ ˆ๋“œ๊ฐ€ synchronized ๋ธ”๋ก์— ์ง„์ž… ๊ฐ€๋Šฅ