์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ํ๋ ์ ๊ตฌ์กฐ
- reducible
- tcp ์ธ๊ทธ๋จผํธ
- ์์๋ฒํธ
- ํ๋ก์ด๋์์
- ์ค๋ธ์
- IEEE 802
- ์ฃผ๊ธฐ์ ํธ
- mariadb
- ์ค๋ฅ๊ฒ์ถ
- ํ ํฐ ๋ฒ์ค
- ์ค๋ฅ์ ์ด
- ์ฝ๋ฉํ ์คํธ์ค๋น
- i-type
- leetcode
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ฐ๋ถํฌdb
- til
- ๋ฐ์ดํฐ ์ ์ก
- tcp ํ๋กํ ์ฝ
- well known ํฌํธ
- 99ํด๋ฝ
- ํญํด99
- git merge
- ๋น์ฃผ๊ธฐ์ ํธ
- ์ค๋ ๋
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- xv6
- ๊ฐ๋ฐ์์ทจ์
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- Today
- Total
Unfazedโ๏ธ๐ฏ
[Java] ์ค๋ ๋ ์์ฑ (Runnable ์ธํฐํ์ด์ค ๊ตฌํ, Thread ํด๋์ค ์์) ๋ณธ๋ฌธ
[Java] ์ค๋ ๋ ์์ฑ (Runnable ์ธํฐํ์ด์ค ๊ตฌํ, Thread ํด๋์ค ์์)
9taetae9 2025. 2. 6. 13:32Java์์๋ ์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค.
Runnable ์ธํฐํ์ด์ค ๊ตฌํ ๋ฐฉ์
- ๋ณ๋์ Runnable ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ ์ด๋ฅผ Thread ํด๋์ค์ ์์ฑ์์ ์ ๋ฌํ์ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๋ค.
- ์ด์ ๊ฒ์๊ธ์์ ๋ค๋ฃฌ ๋ฐฉ์์ผ๋ก ์ฝ๋์ ๋ก์ง์ ๋ถ๋ฆฌํด์ ์์ฑํ ์ ์๋ค.
Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ์์ ์ฝ๋์ ์ค๋ ๋ฉ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ค๋ ๋๋ก ์คํํ ์์ ์ ์ง์คํ ์ ์๊ณ , ๋์ผํ Runnable์ ์ฌ๋ฌ ์ค๋ ๋์์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํ ์คํธํ๊ธฐ๊ฐ ์ฉ์ดํ๋ค. ๋ํ, ์์์ ์ ์ฝ ์์ด ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์๋ค๋ ์ ๋ ํฐ ์ด์ ์ด๋ค.
Thread ํด๋์ค๋ฅผ ์์๋ฐ๋ ๋ฐฉ์
- Thread ํด๋์ค ์์ฒด๊ฐ Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฏ๋ก, ์ด๋ฅผ ์์ํ์ฌ run() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ๋ค.
- ์์์ ํตํด ์ค๋ ๋ ๊ด๋ จ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ด, ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ์ด๋ ๊ณตํต ๋ก์ง ์บก์ํ์ ์ ๋ฆฌํ๋ค.
๋ฐ๋ฉด์, Thread ํด๋์ค๋ฅผ ํ์ฅํ๋ ๋ฐฉ์์ ์ค๋ ๋ ๊ด๋ จ ๊ธฐ๋ฅ๊ณผ ์คํํ ๋ก์ง์ด ํ๋์ ํด๋์ค์ ๊ฒฐํฉ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ์ค๋ ๋ ๋ด๋ถ์ ๋ฉค๋ฒ๋ค(์: this.getName() ๋ฑ)์ ์ง์ ์ ๊ทผํ๊ธฐ ํธ๋ฆฌํ๋ค. ๋จ, ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ๊ธฐ ์ด๋ ค์์ง๋ ์ ์ฝ์ด ์๊ธฐ๊ณ , ์ค๋ ๋์ ์คํํ ์ฝ๋๊ฐ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋๋ฏ๋ก ์ฝ๋์ ๋ชจ๋ํ ์ธก๋ฉด์์๋ ์กฐ๊ธ ๋ถ๋ฆฌํ ์ ์๋ค.
์๋๋ Threadํด๋์ค๋ฅผ ์์๋ฐ์ NewThread ํด๋์ค๋ฅผ ๊ตฌํํ ์์ด๋ค.
private static class NewThread extends Thread {
@Override
public void run() {
this.setName("์ค๋ ๋ ์์ NewThread");
System.out.println("Hello from = " + this.getName()); //static Thread ํธ์ถ ๋์ this ์ฌ์ฉ ๊ฐ๋ฅ
}
}
์ด๋ ๊ฒ ๊ตฌํํ๋ฉด main์์๋ ๋จ์ํ new NewThread()์ฒ๋ผ ์์ฑํ์ฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
Thread thread = new NewThread();
thread.start();
์ํฉ์ ๋ฐ๋ฅธ ์ค๋ ๋ ์์ฑ ๋ฐฉ์
- ๋ง์ฝ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ ๊ณ ๋ คํ๊ฑฐ๋ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ์์ผ ํ๋ ๊ฒฝ์ฐ, Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ด ๋ ์ ํฉํ๋ค.
- ๋ฐ๋๋ก ์คํํ ์์ ์ด ๋จ์ํ๊ณ ๋ค๋ฅธ ์์ ๊ด๊ณ๊ฐ ํ์ ์์ผ๋ฉฐ, ์ค๋ ๋ ๊ธฐ๋ฅ๊ณผ ์คํ ๋ก์ง์ ํจ๊ป ๊ด๋ฆฌํด๋ ๊ด์ฐฎ๋ค๋ฉด Thread๋ฅผ ํ์ฅํ๋ ๋ฐฉ์์ด ์ข๋ค.
๊ฒฐ๊ตญ ์ด๋ ๋ฐฉ์์ด ์ ๋ต์ด๋ผ๊ธฐ๋ณด๋ค๋ ๊ฐ๋ฐ ํ๊ฒฝ, ์ฝ๋ ์ ์ง ๋ณด์์ฑ, ํ์ฅ์ฑ ๋ฑ์ ๊ณ ๋ คํ์ฌ ์ํฉ์ ๋ง๊ฒ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์ค๋ ๋ ์์ฑ ๋ฉ์ปค๋์ฆ๊ณผ JVM์ ์ค๋ ๋ ๊ด๋ฆฌ ๋ฐฉ์์ผ๋ก ์ดํดํ๋ ์ค๋ ๋ start(), run() ๋ฉ์๋์ ์ฐจ์ด (0) | 2025.02.07 |
---|---|
[Java] ์ค๋ ๋ ์ข ๋ฃ & Daemon ์ค๋ ๋ (0) | 2025.02.06 |
[Java] ์ค๋ ๋์ ๊ธฐ๋ฅ๊ณผ ๋๋ฒ๊น (0) | 2025.02.06 |
HashSet/HashMap์ ๋ด๋ถ ๊ตฌ์กฐ ๋ฐ ์ค๋ณต ์ ๊ฑฐ ๋ฉ์ปค๋์ฆ (0) | 2025.01.22 |
Java Stream API - map() & flatMap() (0) | 2025.01.20 |