"์๋ ํ์ธ์, ์๋ฏธ๊ณ ! Ellie๊ฐ ์ค๋ ๋์ ๋ํด ๋งํ๊ณ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ ์ค๋ ๋๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค."
1) ์ค๋ ๋ ๊ฐ์ฒด ์์ฑ
2) ์คํํ๋ ค๋ ๋ฉ์๋๋ฅผ ์ ๋ฌํ์ญ์์ค.
3) ์์ฑ๋ Thread ๊ฐ์ฒด์์ start ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
๋ค์ ์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
์ํธ | ์ค๋ช |
---|---|
|
Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค์ ๋๋ค . |
|
1 run ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ Printer ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. 2 ์ ์ค๋ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. run() ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํ๋ ํ๋ฆฐํฐ ๊ฐ์ฒด๋ฅผ ์์ฑ์์ ์ ๋ฌํฉ๋๋ค. 3 start() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ ์ค๋ ๋๋ฅผ ์์ํฉ๋๋ค . |
์๊ท๋ชจ Java ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ยซ์ฃผ ์ค๋ ๋ยป๋ผ๋ ํ๋์ ์ค๋ ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก๊ทธ๋จ์ ์ข ์ข "์์ ์ค๋ ๋"๋ผ๊ณ ํ๋ ์ถ๊ฐ ์ค๋ ๋๋ฅผ ์์ํฉ๋๋ค. ๋ฉ์ธ ์ค๋ ๋๋ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์คํํ๊ณ ์ข ๋ฃํฉ๋๋ค. Runnable ์ run ๋ฉ์๋๋ ํ์ ์ค๋ ๋ ์ ๋ํ ์ ์ฌํ ๋ฉ์๋์ ๋๋ค.
"์, ์ฐ๋ ๋๊ฐ ๋ง๋ค๋ ๊ฑด ๋ฉ์ธ ๋ฉ์๋๊ฐ ๋ง๋ค๋ ๋ป์ด์ผ."

Thread ๊ฐ์ฒด์ ์ด๋ค ํน์ ๋ฉ์๋๋ฅผ ์์ํด์ผ ํ๋์ง ์๋ ค์ฃผ๋ ค๋ฉด ์ด๋ป๊ฒ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ฒด์ ์ ๋ฌํด์ผ ํฉ๋๋ค. Java์์๋ Runnable ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํฉ๋๋ค. ์ด ์ธํฐํ์ด์ค์๋ ๋จ์ผ ์ถ์ ๋ฉ์๋์ธ void run() ์ด ํฌํจ๋์ด ์์ต๋๋ค . Thread ํด๋์ค์๋ Thread(Runnable Runnable) ์์ฑ์๊ฐ ์์ต๋๋ค. Runnable ์ธํฐํ์ด์ค ๋ฅผ ๊ตฌํํ๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค .
ํด๋์ค๋ Runnable์ ์์ ํ๊ณ ํด๋น run ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ผ ํฉ๋๋ค. ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ ์ค๋ ๋๊ฐ ์์๋ฉ๋๋ค. run ๋ฉ์๋ ์ ์ํ๋ ๋๋ก ์์ฑํ ์ ์์ต๋๋ค .
์ํธ | ์ค๋ช |
---|---|
|
Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค์ ๋๋ค. |
|
๊ฐ๊ฐ ๊ณ ์ ํ Printer ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ ๊ฐ์ ์ค๋ ๋๋ฅผ ๋ง๋ญ๋๋ค. |
|
๋จ์ผ ํ๋ฆฐํฐ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ ๊ฐ์ ์ค๋ ๋๋ฅผ ๋ง๋ญ๋๋ค. |
๋ํ ์ด ๋ชจ๋ ๊ฒ์ ํ๋์ ํด๋์ค๋ก ๊ฒฐํฉํ ์ ์์ต๋๋ค. Thread ํด๋์ค๋ Runnable ์ธํฐํ์ด์ค๋ฅผ ์์ํ๋ฏ๋ก ํด๋น run ๋ฉ์๋ ๋ง ์ฌ์ ์ ํ๋ฉด ๋ฉ๋๋ค .
์ ์ค๋ ๋๋ฅผ ๋ง๋๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ | |
---|---|
|
Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ Thread ํด๋์ค๋ฅผ ์์ํ ๋ค์ run ๋ฉ์๋๋ฅผ ์ฌ์ ์ํฉ๋๋ค. |
|
๊ฐ๊ฐ ๊ณ ์ ํ Printer ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ ๊ฐ์ ์ค๋ ๋๋ฅผ ๋ง๋ญ๋๋ค. |
"์ด๊ฒ์ ๋ณด๋ค ์ฐ์ํ ์๋ฃจ์ ์ ๋๋ค."
"์, ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋จ์ ์ด ์์ต๋๋ค."
1) Natasha์ ์์์์ ๊ฐ์ด ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์์ํด์ผ ํ ์ ์์ต๋๋ค.
2) Thread ํด๋์ค์์ ์์๋ฐ์ ๊ฒฝ์ฐ ํด๋์ค์ ๋ค๋ฅธ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
3) ํด๋์ค์ ์์ ํด๋์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์ค๋ ๋๋ฅผ ๋ ๋ฒ์งธ ์์ ํด๋์ค๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
"์ฆ, ์์ ๋ฉ์๋๊ฐ ํธ์ถ๋ ํ ๊ฐ ์ค๋ ๋๋ ์์ฑ์์๊ฒ ์ ๋ฌ๋ ๊ฐ์ฒด์ ์คํ ๋ฉ์๋ ์คํ์ ์์ํฉ๋๊น?"
"์. ์์ฑ์์ ์๋ฌด ๊ฒ๋ ์ ๋ฌ๋์ง ์์ผ๋ฉด Thread๋ ๋ด๋ถ ์คํ ๋ฉ์๋๋ฅผ ์คํํฉ๋๋ค."
"ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ ์ด๋ ๊ฒ ๋ฉ์๋๋ฅผ ํธ์ถํ์ง ์์ต๋๊น?"
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
printer1.run();
}
"๋ฉ์ธ ์ค๋ ๋๊ฐ run ๋ฉ์๋ ์ ๋๋ฌํ๋ฉด "์์ ๋ก๋ด" ์ด ๋ด๋ถ๋ก ๋ค์ด๊ฐ ๋ด๋ถ์ ๋ชจ๋ ๋ช ๋ น์ ์คํํฉ๋๋ค. ์คํ๋ ํ์์ผ ๋ฉ์ธ ๋ฉ์๋๋ก ๋์๊ฐ์ ์ถ๊ฐ ๋ช ๋ น ์คํ์ ๊ณ์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ๋ฒ์งธ๋ ์์ต๋๋ค. " ์์ ๋ก๋ด"์ด ๋ง๋ค์ด์ง ๊ฒ์ ๋๋ค. ๋ชจ๋ ์์ ์ด ๋ณ๋ ฌ(๋์์)์ด ์๋ ์์ฐจ์ ์ผ๋ก ์ํ๋ ๊ฒ์ ๋๋ค."
"์๊ฒ ์ต๋๋ค. ์คํ ์ด์ธ์ ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๊น?"
"์๋์. ๋ชจ๋ Runnable ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด ์ธํฐํ์ด์ค๋ run() ๋ฉ์๋ ์ค ํ๋์ ๋ํด์๋ง "์๊ณ ์์ต๋๋ค ."
GO TO FULL VERSION