๐Ÿ“•CS

[OS]ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ(2)

stonesy 2024. 11. 19. 14:27
728x90

๐Ÿ“Œํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค

ํ”„๋กœ์„ธ์Šค๋ž€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ๊ฐ ๋ณ„๋„์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. 

์Šค๋ ˆ๋“œ

์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์˜ ํ๋ฆ„์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ํž™์„ ๊ฐ๊ฐ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€ ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ๋Š” ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™์€ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ๊ณต์œ ํ•˜๊ณ , ๊ทธ ์™ธ์˜ ์˜์—ญ์€ ๊ฐ๊ฐ ์ƒ์„ฑ๋œ๋‹ค.

 

*๋™์  ์˜์—ญ
-์Šคํƒ: ์ง€์—ญ ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด ๊ฐ’
-ํž™: ๋™์  ํ• ๋‹น ์‹œ์— ์‚ฌ์šฉ

*์ •์  ์˜์—ญ
-๋ฐ์ดํ„ฐ: ์ „์—ญ ๋ณ€์ˆ˜, ์ •์  ๋ณ€์ˆ˜, ๋ฐฐ์—ด ๋“ฑ
-์ฝ”๋“œ: ์ฝ”๋“œ ์ž์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

 

์Šค๋ ˆ๋“œ๊ฐ€ Stack ์˜์—ญ๋งŒ ๋”ฐ๋กœ ํ• ๋‹น ๋ฐ›๋Š” ์ด์œ ?

- ์Šค๋ ˆ๋“œ๋Š” ๋…๋ฆฝ์ ์ธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.

- ์ฆ‰, ๋…๋ฆฝ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

- ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹น ๋ฐ›์•„์•ผ ํ•œ๋‹ค.

 

 

๐Ÿ“Œ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ๊ณผ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค

๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค๋ž€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

-์žฅ์ : ์•ˆ์ •์„ฑ(๋ฉ”๋ชจ๋ฆฌ ์นจ๋ฒ” ๋ฌธ์ œ๋ฅผ OS ์ฐจ์›์—์„œ ํ•ด๊ฒฐํ•œ๋‹ค.)

-๋‹จ์ : ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ์ž‘์—…๋Ÿ‰์ด ๋งŽ์„์ˆ˜๋ก ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. Context Switching์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋ฉฐ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ์„œ๋กœ ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ์ด ๋†’๋‹ค. 

- ์žฅ์ : ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค์— ๋น„ํ•ด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋งŒํ‹ˆ์˜ ์‹œ๊ฐ„, ์ž์› ์†์‹ค์ด ๊ฐ์†Œํ•˜์—ฌ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์  ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž๋ฃŒ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์ : ์•ˆ์ •์„ฑ ๋ฌธ์ œ. ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์„ ๋ง๊ฐ€๋œจ๋ฆฌ๋ฉด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ž‘๋™ ๋ถˆ๋Šฅ ์ƒํƒœ์— ๋น ์ง„๋‹ค.

 

๐Ÿ“Œ์š”์•ฝ

  • ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•˜๋ฉฐ, ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์˜ ํ๋ฆ„์„ ๋งํ•œ๋‹ค.
  • ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค๋ž€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์—…์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋ฉฐ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
  • ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ, ์ฝ”๋“œ, ํž™, ์Šคํƒ ์˜์—ญ ๋“ฑ์„ ๊ณต์œ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ์ด ๋†’๋‹ค. ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋Š” ์Šคํƒ ์˜์—ญ์€ ๊ณต์œ ํ•˜๋ฉฐ, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋งŒํผ์˜ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ธํ•ด์„œ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์„ ๋ง๊ฐ€๋œจ๋ฆผ๋…€ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ž‘๋™ ๋ถˆ๋Šฅ ์ƒํƒœ์— ๋น ์ง„๋‹ค.

๐Ÿ“Œ๊ณต์œ  ์ž์›๊ณผ ์ž„๊ณ„ ์˜์—ญ

๊ณต์œ  ์ž์›

๊ณต์œ  ์ž์›์€ ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๊ฐ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๊ฐ€ ํ•จ๊ป˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ž์›์„ ๋งํ•œ๋‹ค. ์ด ๊ณต์œ  ์ž์›์„ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ์ƒํ™ฉ์„ ๊ฒฝ์Ÿ ์ƒํ™ฉ(race condition)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ž„๊ณ„ ์˜์—ญ

์ž„๊ณ„ ์˜์—ญ์€ ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์ˆœ์„œ ๋“ฑ์˜ ์ด์œ ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ์ฝ”๋“œ ์˜์—ญ์„ ๋งํ•œ๋‹ค. ์ž„๊ณ„ ์˜์—ญ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 1) ๋ฎคํ…์Šค, 2) ์„ธ๋งˆํฌ์–ด, 3) ๋ชจ๋‹ˆํ„ฐ ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด ๋ฐฉ๋ฒ•์€ ๋ชจ๋‘ ์ƒํ˜ธ ๋ฐฐ์ œ, ํ•œ์ • ๋Œ€๊ธฐ, ์œตํ†ต์„ฑ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค. 

 

1) ๋ฎคํ…์Šค

๋ฎคํ…์Šค๋Š” ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์„ lock()์„ ํ†ตํ•ด ์ž ๊ธˆ ์„ค์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•œ ํ›„์—๋Š” unlock()์„ ํ†ตํ•ด ์ž ๊ธˆ ํ•ด์ œํ•˜๋Š” ๊ฐ์ฒด๋กœ, ์ž ๊ธˆ์ด ์„ค์ •๋˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ์ž ๊ธด ์ฝ”๋“œ ์˜์—ญ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  ํ•ด์ œ๋Š” ๊ทธ์™€ ๋ฐ˜๋Œ€์ด๋‹ค. ๋˜ํ•œ ๋ฎคํ…์Šค๋Š” ์ž ๊ธˆ ๋˜๋Š” ์ž ๊ธˆ ํ•ด์ œํ•˜๋Š” ์ƒํƒœ๋งŒ์„ ๊ฐ€์ง„๋‹ค.

 

2) ์„ธ๋งˆํฌ์–ด

์„ธ๋งˆํฌ์–ด๋Š” ์ผ๋ฐ˜ํ™”๋œ ๋ฎคํ…์Šค๋กœ ๊ฐ„๋‹จํ•œ ์ •์ˆ˜ ๊ฐ’๊ณผ ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜ wait ๋ฐ signal๋กœ ๊ณต์œ  ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ wait() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์„ ํ•ด์ œํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ signal() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์„ธ๋งˆํฌ์–ด์—์„œ๋Š” ์กฐ๊ฑด ๋ณ€์ˆ˜๊ฐ€ ์—†๊ณ  ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋•Œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค. - ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด, ์นด์šดํŒ… ์„ธ๋งˆํฌ์–ด ๋“ฑ

 

3) ๋ชจ๋‹ˆํ„ฐ

๋ชจ๋‹ˆํ„ฐ๋Š” ๋‘˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์›์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต์œ  ์ž์›์„ ์ˆจ๊ธฐ๊ณ  ํ•ด๋‹น ์ ‘๊ทผ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•œ๋‹ค.

 

๐Ÿ“Œ๊ต์ฐฉ ์ƒํƒœ(๋ฐ๋“œ๋ฝ, deadlock)

๊ต์ฐฉ ์ƒํƒœ(deadlock)์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์ค‘๋‹จ๋œ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.

 

๊ต์ฐฉ ์ƒํƒœ์˜ ์›์ธ

  • ์ƒํ˜ธ ๋ฐฐ์ œ: ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ๋…์ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.
  • ์ ์œ  ๋Œ€๊ธฐ: ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ ํ•œ ์ž์›์„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญํ•˜๋Š” ์ƒํƒœ์ด๋‹ค.
  • ๋น„์„ ์ : ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ฐ•์ œ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋‹ค.
  • ํ™˜ํ˜• ๋Œ€๊ธฐ: ํ”„๋กœ์„ธ์Šค A๋Š” ํ”„๋กœ์„ธ์Šค B์˜ ์ž์›์„ ์š”๊ตฌํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค B๋Š” ํ”„๋กœ์„ธ์Šค A์˜ ์ž์›์„ ์š”๊ตฌํ•˜๋Š” ๋“ฑ ์„œ๋กœ๊ฐ€ ์„œ๋กœ์˜ ์ž์›์„ ์š”๊ตฌํ•˜๋Š” ์ƒํ™ฉ์„ ๋งํ•œ๋‹ค.

 

๊ต์ฐฉ ์ƒํƒœ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. ์ž์›์„ ํ• ๋‹นํ•  ๋•Œ ์• ์ดˆ์— ์กฐ๊ฑด์ผ ์„ฑ๋ฆฝ๋˜์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค.

2. ๊ต์ฐฉ ์ƒํƒœ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์—†์„ ๋•Œ์—๋งŒ ์ž์›์„ ํ• ๋‹นํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๋‹น ์š”์ฒญํ•  ์ž์›๋“ค์˜ ์ตœ๋Œ€์น˜๋ฅผ ํ†ตํ•ด ์ž์› ํ• ๋‹น ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•˜๋Š” "์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜"์„ ์‚ฌ์šฉํ•œ๋‹ค.

3. ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์ดํด์ด ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณด๊ณ  ์ด์— ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ ๊ฐœ์”ฉ ์ง€์šด๋‹ค.

4. ๊ต์ฐฉ ์ƒํƒœ๋Š” ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์šฉ์ด ๋” ์ปค์„œ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์ข…๋ฃŒํ•œ๋‹ค.

 

*Java์—์„œ ๋™์‹œ์„ฑ ์ œ์–ด

Java์—์„œ๋Š” synchronized ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. synchronized๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๊ณต์œ  ๋ฆฌ์†Œ์Šค(์˜ˆ: ๊ฐ์ฒด, ๋ฉ”์„œ๋“œ)์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ฝ”๋“œ ๋ธ”๋ก ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋™๊ธฐํ™”ํ•˜์—ฌ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์ ‘๊ทผํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

synchronized (lockA) {
    synchronized (lockB) {
        // critical section
    }
}

 

728x90