"์๋ , ์๋ฏธ๊ณ !
"๋ชจ๋ ์๋ก์ด ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์์ด๋ฒ๋ฆฐ ์ค๋๋ ๊ฒ์ผ ๋ฟ์ ๋๋ค. ์ค๋์ ์ค๋ ๋ ์ค์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ๋น์ ์ด ์ด๋ฏธ ์ธํฐ๋ฝํธ() ๋ฉ์๋๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์์ด๋ฒ๋ ธ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค."
"๋ค, ์๋ฆฌ, ์์ ํ ์์ด๋ฒ๋ ธ์ด์."
"์ข์. ๊ทธ๋ผ ๋ด๊ฐ ์๊ธฐ์์ผ์ค๊ฒ."
"์๋ฐ์์ ๋๊ตฐ๊ฐ ์คํ ์ค์ธ ์ค๋ ๋๋ฅผ ์ค์งํ๋ ค๋ ๊ฒฝ์ฐ ์ค๋ ๋์ ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ค๋ ๋ ๊ฐ์ฒด์ ์จ๊ฒจ์ง isInterrupted ๋ณ์ ๋ฅผ true๋ก ์ค์ ํด์ผ ํฉ๋๋ค."
"๊ฐ ์ค๋ ๋์๋ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ธํฐ๋ฝํธ() ๋ฉ์๋๊ฐ ์์ต๋๋ค. ์ธํฐ๋ฝํธ () ๋ฉ์๋๊ฐ ํธ์ถ ๋๋ฉด ์ค๋ ๋ ๊ฐ์ฒด ๋ด๋ถ์ isInterrupted ๋ณ์๊ฐ true๋ก ์ค์ ๋ฉ๋๋ค."
"Thread.sleep() ๋๋ join() ๋ฉ์๋๊ฐ ์ค๋ ๋์์ ํธ์ถ๋๋ฉด ๋ฉ์๋๋ isInterrupted ํ๋๊ทธ๊ฐ ํ์ฌ ์ค๋ ๋์ ๋ํด ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ด ํ๋๊ทธ๊ฐ ์ค์ ๋๋ฉด(isInterrupted ๋ณ์๊ฐ true์ ๊ฐ์) ๋ฉ์๋ ๋ InterruptedException ์ ๋์ง๋๋ค ."
"์ฌ๊ธฐ์์ ์ค๋๋ ์๋ฅผ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค."
์ํธ | ์ค๋ช |
---|---|
|
Clock์ run ๋ฉ์๋๋ ํ์ฌ ์ค๋ ๋์ ๋ํ Thread ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
Clock ํด๋์ค๋ ํ์ฌ ์ค๋ ๋์ isInterrupt ๋ณ์๊ฐ false์ธ ํ ์ด๋น ํ ๋ฒ์ฉ "Tick"์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฝ์์ ์๋๋ค. isInterrupt๊ฐ true๊ฐ ๋๋ฉด run ๋ฉ์๋๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. |
|
๋ฉ์ธ ์ค๋ ๋๋ ์์ํ ์คํ๋์ด์ผ ํ๋ ํ์ ์ค๋ ๋(์๊ณ)๋ฅผ ์์ํฉ๋๋ค.
10์ด๋ฅผ ๊ธฐ๋ค๋ฆฐ ํ ์ธํฐ๋ฝํธ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์ ์ ์ทจ์ํฉ๋๋ค. ๊ธฐ๋ณธ ์ค๋ ๋๊ฐ ์์ ์ ์๋ฃํฉ๋๋ค. ํด๋ญ ์ค๋ ๋๊ฐ ์์ ์ ์๋ฃํฉ๋๋ค. |
"์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ run ๋ฉ์๋ ์์ ๋ฌดํ ๋ฃจํ์ ์ผ๋ถ๋ก sleep ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค . ๋ฃจํ์์ isInterrupt ๋ณ์๋ ์๋์ผ๋ก ๊ฒ์ฌ๋ฉ๋๋ค. ์ค๋ ๋๊ฐ sleep ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋ฉ์๋๋ ๋จผ์ ํด๋น ์ค๋ ๋์ ๋ํด isInterrupt ๊ฐ ์ฐธ์ธ์ง ํ์ธํฉ๋๋ค( sleep ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ฒ). ์ด๊ฒ์ด ์ฐธ์ด๋ฉด ๋ฉ์๋๋ ์ ๋ค์ง ์์ต๋๋ค. ๋์ InterruptedException ์ ๋ฐ์์ํต๋๋ค . "
"ํ์ง๋ง ์ด ์์์๋ ๋ฃจํ ์กฐ๊ฑด์์ isInterrupted ๋ณ์๋ฅผ ์ง์์ ์ผ๋ก ํ์ธํฉ๋๋ค."
"์ด ์ ๊ทผ๋ฒ์ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ด์ ๊ฐ ์์๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํฉ๋๋ค. ์๊ธฐ์์ผ ์ฃผ์๊ฒ ์ต๋๊น?"
" ์ฒซ์งธ , run ๋ฉ์๋์ ํญ์ ๋ฃจํ๊ฐ ์๋ ๊ฒ์ ์๋๋๋ค. ์ด ๋ฉ์๋๋ ๋จ์ํ ๋ค๋ฅธ ๋ฉ์๋์ ๋ํ ์์ญ ๋ฒ์ ํธ์ถ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ ๋ฉ์๋ ํธ์ถ ์ ์ isInterrupted ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค."
" ๋์งธ , ๋ค์ํ ์์ ์ด ๋ง์ด ํฌํจ๋ ์ผ๋ถ ๋ฉ์๋๋ ์คํํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค."
" ์ ์งธ , ์์ธ ๋ฐ์์ isInterrupted ๊ฒ์ฌ๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค. ๋จ์ง ํธ๋ฆฌํ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค. ๋ฐ์๋ ์์ธ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ์ถ ์คํ์ run ๋ฉ์๋ ์์ฒด ๋ก ๋น ๋ฅด๊ฒ ๋๋๋ ค ๋์ ์ ์์ต๋๋ค. "
" ๋ท์งธ , ์๋ฉด ๋ฐฉ๋ฒ์ด ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ ์ฉํ ๋ฐฉ๋ฒ์ ๊ทธ๋ค์ง ๋์์ด ๋์ง ์๋ ์๋ฌต์ ํ์ธ์ผ๋ก ํฅ์๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๋ง์น ์๋ฌด๋ ํน๋ณํ ํ์ธ์ ์ถ๊ฐํ์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋น์ ์ด ํ ๋ ๋งค์ฐ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ ์ง์ ํ์ธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค."
" ๋ค์ฏ์งธ , ์ถ๊ฐ ๊ฒ์ฌ๋ ์ฑ๋ฅ์ ์ ํ์ํค์ง ์์ต๋๋ค. sleep ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค๋ ๊ฒ์ ์ค๋ ๋๊ฐ ์๋ฌด ์์ ๋ ์ํํ์ง ์์์ผ ํจ์ ์๋ฏธํ๋ฏ๋ก(์๋ฉด ์ ์ธ) ์ถ๊ฐ ์์ ์ผ๋ก ์ธํด ์๋ฌด๋ ๊ท์ฐฎ๊ฒ ํ์ง ์์ต๋๋ค."
"๊ทธ๊ฒ ๋ฐ๋ก ๋น์ ์ด ์ด์ ์ ๋งํ๋ ๊ฒ์ ๋๋ค."
"๊ทธ๋ฌ๋ฉด ยซ ์๋ฌด๋ ์ค๋ ๋๊ฐ ์ค์ง๋ ๊ฒ์ด๋ผ๊ณ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ค๋ ๋๋ง ์์ฒด์ ์ผ๋ก ์ค์งํ ์ ์์ต๋๋ค. ยป ์ค๋ช ํ ์ ์์ต๋๊น?"
"ํ์ ํ๋."
"์ด์ ์๋ Java์ ์ด๊ธฐ ๋ฒ์ ์์ ์ค๋ ๋์ stop() ๋ฉ์๋๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด JVM์ด ์ค์ ๋ก ์ค๋ ๋๋ฅผ ์ค์งํ์ต๋๋ค. ํ์ง๋ง ์ค๋ ๋๊ฐ JVM ์ธ๋ถ์์ ์์ (์: ํ์ผ์ ์ฐ๊ธฐ ๋๋ ํธ์ถ)์ ์ํํ๋ ๊ฒฝ์ฐ OS ๊ธฐ๋ฅ) ์ด๋ฐ ์์ผ๋ก ์ค๋จ๋์์ ๋ ์ค๋จ์ผ๋ก ์ธํด ํ์ผ์ด ๋ซํ์ง ์๊ฑฐ๋ ์์คํ ๋ฆฌ์์ค๊ฐ ํด์ ๋์ง ์๋ ๋ฑ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค."
"์๋ฐ ์ฐฝ์์ ์ดํ์์ ์ฐ๋ ๋ ๊ฐ์ ์ข ๋ฃ ๋ฐฉ๋ฒ์ ์ญ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ผ์ ํน์ ํ๋๊ทธ(isInterrupted)๋ฅผ ์ค์ ํ๊ณ ์ค๋ ๋ ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑ๋์ด ์ด ํ๋๊ทธ๊ฐ ์ฒ๋ฆฌ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ๋ฟ์ ๋๋ค. ์ด ํ๋๊ทธ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค!'๋ผ๋ ํ์งํ๊ณผ ๊ฐ์ต๋๋ค. ํ์ง๋ง ๋ฉ์ถ๊ฑฐ๋ ๋ง๊ฑฐ๋๋ ๊ฐ์์ ์ผ์ ๋๋ค."
"ํ์ง๋ง InterruptedException์ ์ด๋ป์ต๋๊น?"
"์ด ์ค๋ ๋์์ ์คํ ์ค์ธ ์ฝ๋์ ์ฌ๋ฌ ๊ฐ์ try-catch ๋ธ๋ก์ด ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ด๋๊ฐ์์ InterruptedException์ด ๋ฐ์ํ๋๋ผ๋ ์ผ๋ถ try-catch๊ฐ ์ด๋ฅผ ํฌ์ฐฉํ๊ณ ์์ด๋ฒ๋ฆฌ์ง ์๋๋ค๋ ๋ณด์ฅ์ ์์ต๋๋ค. ์ค๋ ๋๊ฐ ์ค์ง๋ฉ๋๋ค."
"๋ ๋ค๋ฅธ ๊ฒ์ ์ค๋ ๋๊ฐ ์ด๋ฏธ ์๋นํ ์ ์์ค ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ฐ์ฃผ๋๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ค์์ ๊ทธ๊ฒ์ ๋ํด ๋ง์ ๋๋ฆฌ๊ฒ ์ต๋๋ค."
"๋น์ ์ Ellie๊ฐ ์๋๋๋ค. ๋น์ ์ Scheherazade์ ๋๋ค!"
"๊ทธ๋์, ์๋ฏธ๊ณ ! ํ์ฌ ์์ ์ ๋ชจ๋ ๋ช ํํฉ๋๊น?"
"๋ค."
"์ข์, ์ข์."
GO TO FULL VERSION