π κ°λ
μ 리
π νλ‘κ·Έλ¨ (Program)
νλ‘κ·Έλ¨μ΄λ λͺ
λ Ήμ΄μ λ°μ΄ν°μ λͺ¨μμ
λλ€.
- νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ¬μ©νμ¬ μμ± λκ³ , μ»΄ν¨ν°μ μν΄ μ€ν λ©λλ€.
- νμΌ μμ€ν
μ μ μ₯λλ©° μ€νλ λ λ©λͺ¨λ¦¬μ λ‘λ λ©λλ€.
π νλ‘μΈμ€ (Process)
νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ
λλ€.
- μμ
μ μννκΈ° μν΄ λ©λͺ¨λ¦¬ 곡κ°μ ν λΉ λ°μ μ€ν μ€μΈ νλ‘κ·Έλ¨ μ
λλ€.
- κ° νλ‘μΈμ€λ λ
립λ λ©λͺ¨λ¦¬ μμμ ν λΉλ°μΌλ©°, μ€ν μ€μ νμν λͺ¨λ 리μμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€.
π μ€λ λ (Thread)
μ€λ λλ νλ‘μΈμ€μμ μνλλ μμ
λ¨μμ
λλ€.
- λͺ¨λ νλ‘μΈμ€λ ν κ° μ΄μμ μ€λ λ(μμ
)μ κ°μ§κ³ μμ΅λλ€.
- κ°μ νλ‘μΈμ€μ μ€λ λλ€μ λ©λͺ¨λ¦¬μ μμμ 곡μ νλ©° λ³λ ¬μ μΌλ‘ μμ
μ μνν©λλ€.
π μ₯λ¨μ
π μ₯μ
- λ³λ ¬ μ²λ¦¬: μ¬λ¬ μμ
μ λμμ μννκ±°λ λ³λ ¬λ‘ μ²λ¦¬ν μ μμ΅λλ€. μ΄λ λ€μ€μ½μ΄ CPUλ₯Ό νμ©νμ¬ μμ
μ λΆμ°μμΌ μ 체μ μΈ μ²λ¦¬ μλλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
- μμ 곡μ : κ°μ νλ‘μΈμ€ λ΄μμμ λ©λͺ¨λ¦¬ 곡κ°μ 곡μ νκΈ° λλ¬Έμ λ°μ΄ν°λ μμμ λν 곡μ κ° ν¨μ¨μ μ
λλ€.
- μμ
λΆλ΄: 볡μ‘νκ±°λ ν° μμ
μ μμ μμ
μΌλ‘ λΆν νμ¬ λ³λ ¬μ μΈ μ²λ¦¬λ₯Ό ν μ μμ΅λλ€. μ΄λ‘ μΈν΄ νλ‘κ·Έλ¨μ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
- μκ° μ§μ° μ΅μν: μΌλΆ μ€λ λμ μ²λ¦¬κ° μ§μ°λλλΌλ λ€λ₯Έ μ€λ λμμ λ³λ ¬λ‘ λ€λ₯Έ μμ
μ μ²λ¦¬ν μ μμ΅λλ€.
π λ¨μ
- λκΈ°ν: μ¬λ¬ μ€λ λκ° κ³΅μ μμμ λμμ μ κ·Όν λ λ°μ΄ν°μ μΌκ΄μ±μ μνμ¬ λκΈ°ν λ©μ»€λμ¦μ΄ νμν©λλ€.
- κ΅μ°© μν(Deadlock): μ¬λ¬ μ€λ λκ° μλ‘κ° μ μ νκ³ μλ μμμ λκΈ°νλ μνλ‘ μμ
μνμ΄ μ§νλμ§ μλ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
π μ€μ΅
βοΈ Thread μμ
public class MyThread extends Thread {
public void run() {
System.out.println("Running Thread...");
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
}
}
βοΈ Runnable μΈν°νμ΄μ€ ꡬν
public class MyRunnable implements Runnable {
public void run() {
System.out.println("Running Thread...");
}
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread myThread = new Thread(myRunnable);
myThread.start();
}
}
π€ κ³ μ°°
μ€λ λκ° λ³λ ¬ μ²λ¦¬λΌλ μ₯μ μ΄ μλ€κ³ ν΄λ, λ¨μΌμ½μ΄ CPU μ¬μ© μ ν λ²μ μ€λ λ νλλ§μ μ²λ¦¬ν μ μμ΄ μ₯μ μ΄ ν΄νλλκ°?
λ¨μΌ μ½μ΄ CPUμμλ ν λ²μ νλμ μ€λ λλ§μ μ²λ¦¬ν μ μκΈ° λλ¬Έμ λ³λ ¬ μ²λ¦¬μ μ΄μ μ΄ μ νλ μ μμ΅λλ€.
κ·Έλμ μ€λ λ κ°μ μ€μμΉμ ν΅ν΄ μ¬λ¬ μ€λ λκ° λ²κ°μκ°λ©° μ€νλλ λ©ν°μ€λ λ© κΈ°λ²μ μ¬μ©νμ¬ λ³λ ¬ μ²λ¦¬λ₯Ό ν μ μμ΅λλ€.
λ¨μΌ μ€λ λμ κ²½μ° νλ‘μΈμ€μ λ€λ₯Έ μ μ΄ λ¬΄μμΈκ°?
κ°λ
μμ²΄κ° λ€λ₯΄λ€κ³ λ³Ό μ μμ΅λλ€. νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ»νκ³ , λ¨μΌ μ€λ λλ νλμ μ€λ λ λ§μ μ¬μ©νμ¬ μμ
μ μ²λ¦¬νλ κ²μ λ»ν©λλ€.
μ΄λ° μ μ©ν μ 보λ₯Ό λλ μ£Όμ μ κ°μ¬ν©λλ€.