728x90
๋ฐ˜์‘ํ˜•

2025/10/01 1

[JAVA] ๋ชจ๋‹ˆํ„ฐ(Monitor)

1๏ธโƒฃ ๋ชจ๋‹ˆํ„ฐ(Monitor)๋ž€?์ •์˜: ํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋™๊ธฐํ™” ์ œ์–ด ์žฅ์น˜์—ญํ• : ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ด€๋ฆฌ์‰ฝ๊ฒŒ ๋งํ•ด “๊ฐ์ฒด์— ๊ฑธ๋ฆฐ ์ž๋ฌผ์‡ (lock)” ๊ฐ™์€ ์กด์žฌ์˜ˆ์š”.๐Ÿ’ก ๋ชจ๋“  ๊ฐ์ฒด๋Š” Java์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ → ์Šค๋ ˆ๋“œ๊ฐ€ synchronized๋กœ ์ ‘๊ทผํ•  ๋•Œ ์ด ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์‚ฌ์šฉ2๏ธโƒฃ ๋ชจ๋‹ˆํ„ฐ ๋™์ž‘์Šค๋ ˆ๋“œ๊ฐ€ synchronized(obj) ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๋ฉด → obj์˜ ๋ชจ๋‹ˆํ„ฐ ๋ฝ์„ ํš๋“๋ชจ๋‹ˆํ„ฐ๋ฅผ ๊ฐ€์ง„ ์Šค๋ ˆ๋“œ๋งŒ ๋ธ”๋ก ์•ˆ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅ๋ธ”๋ก ์ข…๋ฃŒ ์‹œ → ๋ฝ ํ•ด์ œ, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅwait()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด → ๋ฝ์„ ํ’€๊ณ  ๋Œ€๊ธฐ → ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ ์ ‘๊ทผ ๊ฐ€๋Šฅnotify()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด → ๋Œ€๊ธฐ ์ค‘์ธ ์Šค๋ ˆ๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊นจ์›€, ๋ฝ์ด ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆผ3๏ธโƒฃ ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ด[Object o..

JAVA 2025.10.01
728x90
๋ฐ˜์‘ํ˜•