Java Thread
๋์์ฑ
Concurrency
Logical
Single Core / Multi Core
Parallel
Physical
Multi Core
Java๋ JVM (Java Virtual Machine) ์์์ ๋์ํ๋ฏ๋ก ๋ฌผ๋ฆฌ์ ์ธ ๋ถ๋ถ์ ๋ํด์๋ ๊ณ ๋ คํ์ง ์์๋ ๋จ!
Java Thread ๋?
Process
: ๊ฐ๋ณ์ ์ผ๋ก ๋์ํ๋ ํ๋ก๊ทธ๋จ (Eclipse, Messenger, etc)
Thread
: Process๋ฅผ ๊ตฌ์ฑํ๋ ์์ ์คํ ๋จ์ (Messenger = chat + file transfer)
Multi-process
: ๋์์ ์ฌ๋ฌ๊ฐ์ process๋ฅผ ์คํํ๋ ๊ฒ
Multi-thread
: ํ๋์ process์์ ์ฌ๋ฌ๊ฐ์ thread๊ฐ ๋์์ ๋์ํ๋ ๊ฒ
Java Thread ์์ฑ
๋ฐฉ๋ฒ 1) Runnable interface ์์ฑ
Runnable interface
ex)
package virus; public class CoronaRunnable implements Runnable{ int num; public CoronaRunnable() {} public CoronaRunnable(int num) { this.num = num; } @Override public void run() { for (int i =0 ; i< 10000 ; i++) { int j = i*100; } System.out.println(num); } }
Test
package app; import virus.CoronaRunnable; public class CoronaThreadTest { public static void main(String[] args) { for (int i = 0 ; i <1000 ; i++) { CoronaRunnable cr = new CoronaRunnable(i); Thread t = new Thread(cr); // Thread ๋์์ํค๊ธฐ t.start(); } } }
๋ฐฉ๋ฒ 2) Thread class ์์ฑ
Thread class
ex)
package virus;
public class CoronaThread extends Thread{ int num;
public CoronaThread() {}
public CoronaThread(int num) {
this.num = num;
}
@Override
public void run() {
for (int i = 0 ; i < 10000 ; i++) {
int j = i*100;
}
System.out.println(num);
}
}
<br>
- Test
```java
import virus.CoronaRunnable;
import virus.CoronaThread;
public class CoronaThreadTest {
public static void main(String[] args) {
for (int i = 0 ; i <1000 ; i++) {
CoronaThread ct = new CoronaThread(i);
ct.start();
}
}
}
Thread ์คํ ์ memory ๊ตฌ์กฐ

Last updated
Was this helpful?