ch25 : Thread
๋ชฉ์ฐจ
๋ฉํฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
์คํ ๋ฐฉ๋ฒ - ๋ฉ์ธ ํจ์์ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์์์์ผ์ฃผ๋ฉด ๋๋ค.
Runnable ์ธํฐํ์ด์ค์ Thread ํด๋์ค
์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค.
Runnable
์ธํฐํ์ด์ค
Thread
ํด๋์ค (Runnable
์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ํด๋์ค. ์ฆ, ๊ตฌํํจ)(๋๋ค java.lang์ ์์ผ๋ฏ๋ก import ์ํด๋ ๋๋ค.)
Runnable
์ธํฐํ์ด์ค์๋void run()
๋ง ์ ์ธ๋์ด ์๋ค. ์ด ๋ฉ์๋๋ ์ค๋ ๋๊ฐ ์์๋๋ฉด ์ํ๋๋ ๋ฉ์๋์ด๋ค. โThread
ํด๋์ค๋ ํด๋น ๋ฉ์๋๋ง ๊ตฌํํด์ฃผ๋ฉด ๋๋ค.Thread
ํด๋์ค๋ฅผ ํ์ฅํ ๊ฒฝ์ฐ๊ฐ ์ฌ์ฉ์ด ํธ๋ฆฌํ๋ค.๊ทธ๋ผ
Runnable
์ธํฐํ์ด์ค๋ ์ธ์ ์ฌ์ฉํ ๊น? ํด๋์ค๋ ๋ค์ค ์์์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ด๊ฐ ๋ง๋๋ ํด๋์ค๊ฐThread
ํด๋์ค ์ธ์๋ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ์์ผ ํ๋ ๊ฒฝ์ฐ์๋Runnable
์ธํฐํ์ด์ค์ ์์๋ฐ์ผ๋ฉด ๋๋ค.
์ค๋ ๋ ์คํ ๋ฐฉ์
์ค๋ ๋๊ฐ ์ํ๋๋ ๋ฉ์๋๋
run()
์ด๋ค. (๊ทธ๋ฆฌ๊ณ ์ด ๋ฉ์๋๊ฐ ์ข ๋ฃ๋ ๋ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋๋ค.)์ค๋ ๋๋ฅผ ์์ํ๋ ๋ฉ์๋๋
start()
์ด๋ค.๋ ๊ฐ์ง ๋ฐฉ์์ ์ค๋ ๋๋ฅผ ์คํํ๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ค.
Runnable
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค์ ์์Thread
ํด๋์ค๋ฅผ ํ์ฅํ ํด๋์ค์ ์์
์ค๋ ๋์ ์คํ
start()
๋ฅผ ํธ์ถํ๋ฉดrun()
๋ฉ์๋ ๋ด์ฉ์ด ๋๋๋ ๋ง๋ ์ฐ๋ ๋๋ฅผ ์์ํ ๋ฉ์๋์์ ๊ทธ ๋ค์ ์ค์ด ์คํ๋๋ค.์ฐ๋ ๋ ์์ํ ๋ 100 ์ซ์๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์ถ๋ค๋ฉด? -> ์ฐ๋ ๋๋ฅผ ์์๋ฐ์ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ผ๋ฉด ๋๋ค.
์ค๋ ๋์ ์ข ๋ฃ
sleep()
๋งค๊ฐ๋ณ์๋ก ๋์ด์จ ์๊ฐ๋งํผ ๋๊ธฐํ๋ค.
์ฌ์ฉํ ๋ ํญ์ try-catch๋ก ๋ฌถ์ด์ค๋ค.
InterrptedException
ํน์ ์์ ์์ธ ํด๋์ค๋ก ์์ธ์ฒ๋ฆฌ ํด์ฃผ์ด์ผ ํ๋ค.
๋ฐ๋ชฌ ์ค๋ ๋
์ผ๋ฐ ์ค๋ ๋๋ JVM์ด ์ข ๋ฃํ ์ ์์ผ๋, ๋ฐ๋ชฌ ์ค๋ ๋๋ JVM์ด ๋๋ผ ์ ์๋ค.
์ค๋ ๋ ์คํ(
start()
)์ ์ ๋ฐ๋ชฌ์ค๋ ๋๋ก ์ง์ ๋์ด์ผ ํ๋ค.์ค๋ ๋๊ฐ์ฒด.setDaemon(true)
; // ๋ฐ๋ชฌ์ค๋ ๋ ์ง์
๋ฐ๋ชฌ ์ค๋ ๋๋ ํด๋น ์ค๋ ๋๊ฐ ์ข ๋ฃ๋์ง ์์๋, ๋ค๋ฅธ ์คํ์ค์ธ ์ค๋ ๋๊ฐ ์๋ค๋ฉด ์ข ๋ฃ๋๋ค.
ex) ๋ถ๊ฐ์ ์ธ ์์ ์ ๋ฐ๋ชฌ์ค๋ ๋๋ก ๋ง๋ ๋ค.
๋ชจ๋ํฐ๋ง ์ค๋ ๋๋ฅผ ๋ฐ๋ชฌ์ค๋ ๋๋ก ๋ง๋ค๊ณ , ์ผ๋ฐ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ๋ชจ๋ํฐ๋ง ์ค๋ ๋๋ ์ข ๋ฃ์์ผ ํ๋ก์ธ์ค๋ฅผ ๋๋ด๋ ๊ฒฝ์ฐ
Last updated