์™ผ์ชฝ์€ -1์ด ๋“ค์–ด์žˆ๋Š” ๊ณต๊ฐ„(Node, ์šฐ์ธก ํด๋ž˜์Šค) 5๊ฐœ๋ฅผ ๋งŒ๋“  ํ›„ ๋‘ ๊ฐœ์˜ Task๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐ„์„ 1 ํ˜น์€ 2๋กœ ์ฑ„์šฐ๋Š” ํ•จ์ˆ˜์•ผ.

์ฒซ๋ฒˆ์งธ Task๋Š” ๊ณต๊ฐ„์˜ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1์„ ์ฑ„์›Œ๋‚˜๊ฐ€๊ณ , ๋‘๋ฒˆ๋•Œ Task๋Š” ๊ณต๊ฐ„์˜ ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์™ผ์ชฝ์œผ๋กœ 2๋ฅผ ์ฑ„์›Œ๋‚˜๊ฐ€.

๋‘ Task๋Š” ๊ณต๊ฐ„์ด -1์ด ์•„๋‹ˆ๋ฉด(1 ํ˜น์€ 2๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด) ๋ฉˆ์ถฐ.


๊ณต๊ฐ„์„ 5๊ฐœ ์„ค์ •ํ•ด๋‘๋ฉด ๋žœ๋ค์œผ๋กœ [1][1][1][2][2] ํ˜น์€ [1][1][2][2][2]๋กœ ์ฑ„์›Œ์ ธ.

์ด๋•Œ ์งˆ๋ฌธ


1. ์™ผ์ชฝ ๋นจ๊ฐ„ ์ƒ์ž ์•ˆ์˜ lock๋Š” ๊ผญ ํ•„์š”ํ•ด? ๋‘ Task๊ฐ€ ๋™์‹œ์— 3๋ฒˆ์งธ(์ค‘๊ฐ„) ๋…ธ๋“œ์— ์ ‘๊ทผํ•˜์ง€ ๋ง๋ผ๊ณ  ํ•ด๋‘” ๊ฑด๋ฐ, ์—†์–ด๋„ ์ •์ƒ์ž‘๋™์€ ํ•˜๋”๋ผ๊ณ .

2. Task.Delay๋Š” ๊ทธ๋ƒฅ Task๋ฅผ ๋ธ”๋ก ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ ๋‘” ๊ฑด๋ฐ, 1๋ฐ€๋ฆฌ์ดˆ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์ด๋Ÿฐ ๊ฑฐ ์—†์ด ๋ฐ”๋กœ ๋ธ”๋ก์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๋‚˜?

3. ์™ผ์ชฝ ์ดˆ๋ก ์ƒ์ž์˜ Sleep์€ ๋น„๋™๊ธฐ Task๊ฐ€ ๋๋‚œ ํ›„ Node๋“ค์˜ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ธฐ ์œ„ํ•ด ๋‘”๊ฑด๋ฐ, ๋น„๋™๊ธฐ Task์˜ ์™„๋ฃŒ๋Š” ๋ณ€์ˆ˜ ์ฐธ์กฐ๊ฐ™์€ ์™ธ๋ถ€์ ์ธ ๋ฐฉ๋ฒ• ๋ง๊ณ ๋Š” ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์—†๋‚˜?


์•„์ง ๊ด€๋ จ ๊ฐœ๋…์ด ๋ถ€์กฑํ•ด์„œ ์งˆ๋ฌธ๋„ ๋งž๊ฒŒ ํ•œ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค... ์งˆ๋ฌธ์ด ์ข€ ์ด์ƒํ•˜๋”๋ผ๋„ ์ดํ•ดํ•ด์ค˜.