Processμ Thread
π νλ‘μΈμ€(Process) : cpuμ μν΄ λ©λͺ¨λ¦¬μμ μ€ν μ€μΈ νλ‘κ·Έλ¨
- μλ° JVM(Java Virtual Machine)μ μ£Όλ‘ νλμ νλ‘μΈμ€λ‘ μ€νλλ©°, λμμ μ¬λ¬ μμ μ μννκΈ° μν΄ λ©ν° μ€λ λλ₯Ό μ§μνλ€.
π μ€λ λ(Thread) : λ©λͺ¨λ¦¬μ μ¬λΌκ° μ€ν μ€μΈ νλ‘μΈμ€ μμμ μ€μ§μ μΌλ‘ μμ μ μ€ννλ λ¨μ
- λ¨μΌ μ€λ λ : ν νλ‘κ·Έλ¨μ μ€λ λκ° 1κ°μΌ κ²½μ°
- λ©ν° μ€λ λ : ν νλ‘κ·Έλ¨μ μ€λ λκ° 2κ° μ΄μμΈ κ²½μ°
ππ»μμ λ¨μλ‘ λ³΄λ μ΄μ체μ μ μ€λ λππ»
μ΄μ 체μ μ μ μ₯μμ → μμ μ λ¨μλ νλ‘μΈμ€
cpuμ μ₯μμ → μμ μ λ¨μλ μ€λ λ
Processμ Threadμ μ°¨μ΄μ
κ°μ₯ ν° μ°¨μ΄ ν€μλ : λ λ¦½μ± (κ°κ°μ λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°λ κ²)
→ νλ‘μΈμ€λ λ 립μ±μ λμ°κΈ°μ μλ‘ μν₯μ λ―ΈμΉμ§ μμ§λ§ μ€λ λμ μμ μ μλ‘ μν₯μ λ―ΈμΉλ€.
Thread μμ±λ²
- Thread ν΄λμ€λ₯Ό μμ λ°μ μμ±νλ λ°©λ².
- run() λ©μλ μ€λ²λΌμ΄λ©
class MyThread extends Thread { //μ€λ λλ₯Ό μμλ°μ ν΄λμ€ μμ±
public void run() { //ν΄λΉ ν΄λμ€κ° ν΄μΌν μμ
μ run λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ λͺ
μ
System.out.println("Thread is running.");
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // mainλ¬Έμ μ€νμΌλ‘ μ€λ λ μμ± λ° start λ©μλλ₯Ό ν΅ν΄ μ€ν
}
}
- Runnable μΈν°νμ΄μ€λ₯Ό ꡬννμ¬ μμ±νλ λ°©λ²
- run() λ©μλ μ€λ²λΌμ΄λ©
- ν΄λμ€λ λ€μ€ μμμ΄ λΆκ°νκ³ μΈν°νμ΄μ€λ λ€μ€ μμμ΄ κ°λ₯νκΈ°μ μ£Όλ‘ μ¬μ©λλ λ°©λ²
class MyRunnable implements Runnable { // Runnable μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€ μμ±
public void run() { // run() λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ ν΄μΌν μμ
λͺ
μ
System.out.println("Runnable is running.");
}
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable()); // Runnable κ°μ²΄λ₯Ό μμ±νμ¬ μ€λ λ μμ±
thread.start(); // μ€λ λμ run() λ©μλλ₯Ό μ€ν
}
}
π Threadμ μλμ μμλ³Ό μ μλ μμ μ½λ
class Task extends Thread {
@Override
public void run() {
for (int i = 1; i <= 1000; i++) {
System.out.println("Task - Count: " + i);
}
}
}
public class ThreadMain {
public static void main(String[] args) {
Task t1 = new Task(); //
t1.start(); // μλ‘μ΄ μ€λ λλ‘ μμ μ€ν
for (int i = 1; i <= 1000; i++) {
System.out.println("Main - Count: " + i);
}
}
}
μ€ν κ²°κ³Ό μμ
Main - Count: 1
Task - Count: 1
Main - Count: 2
Main - Count: 3
Task - Count: 2
Task - Count: 3
Main - Count: 4
...
Task - Count: 1000
Main - Count: 999
Main - Count: 1000
: Task μ€λ λμ main μ€λ λκ° κ°κ° 1λΆν° 1000κΉμ§μ μ«μλ₯Ό μΆλ ₯νλλ°, λ μ€λ λμ μΆλ ₯μ΄ μμ¬μ λνλ¨.
(λ μ€λ λμ μ€ν μμλ μ΄μ체μ μ μ€μΌμ€λ¬μ μν΄ κ²°μ λκΈ°μ μ€ν λλ§λ€ λ¬λΌμ§ μ μλ€.)
μ°Έκ³ μμ
- Adobe Creative CloudμΌλ‘ μμνλ 무μμ΄λ μ μ (youtube.com)
- https://www.youtube.com/watch?si=rxafFmhRhRLemgaQ&v=3LIvYJ3BQXo&feature=youtu.be
'Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] OCP (Open Closed Principle) κ°λ°© νμμ μμΉ (0) | 2024.08.26 |
---|---|
[JAVA] λ©λͺ¨λ¦¬ μμ (0) | 2024.08.25 |
[JAVA] μΆμ ν΄λμ€μ μΈν°νμ΄μ€ (0) | 2024.08.19 |
[JAVA] staticμ μλ―Έμ μ¬μ©λ² (0) | 2024.08.19 |
[JAVA] κ°μ²΄(Object)λ? (0) | 2024.08.16 |