Programing_Java
Section#18 _ μ€λ λ λ³Έλ¬Έ
#1 νλ‘μΈμ€μ μ€λ λ
: λμμ λ κ°μ§ μ΄μμ μμ μ μ²λ¦¬νλ κ² → λ©ν°νμ€νΉ(Multi-Tasking)
: νλ‘μΈμ€μ μ€λ λλ₯Ό ν΅ν΄ λ©ν°νμ€νΉμ΄ κ°λ₯
νλ‘κ·Έλ¨ : νλ‘κ·Έλλ° μ½λμ μ§ν©μ²΄ μλ―Έ
νλ‘μΈμ€ : νλ‘κ·Έλ¨μ ν λ¨μλ₯Ό λ§νλ©° μ€ν μ€μΈ νλ‘κ·Έλ¨μΌλ‘ λ©λͺ¨λ¦¬μ λ 립μ μΌλ‘ μ μ₯λμ΄ μ€ν
→ νλ‘κ·Έλ¨μ μ€ννλ μκ° λ©λͺ¨λ¦¬μ μ¬λΌκ°κ³ λμνκ² λλλ° μ΄ μνμ νλ‘κ·Έλ¨
→ νλ‘μΈμ€λ λ 립μ μΌλ‘ λ©λͺ¨λ¦¬μ λ±λ‘λκΈ° λλ¬Έμ μ¬λ¬κ°μ. νλ‘κ·Έλ¨μ λμμ μ€νν μ μκ² λ¨
→ κ°κ°μ νλ‘μΈμ€λ€μ λ©λͺ¨λ¦¬μ λ 립μ μΌλ‘ λ±λ‘λμ΄ μλ‘ κ°μν μ μμ
μ€λ λ : νλ‘κ·Έλ¨ λ΄μμ λμνλ μμ λ¨μλ₯Ό λ§νλ©° μ€λ λλ₯Ό ν΅ν΄ λμμ μ¬λ¬ κ°μ§ μμ μ ν μ μμ
→ νλ‘μΈμ€ λ΄λΆμ μ‘΄μ¬νλ©΄μ μ€ν νλ¦μ λνλ΄λ κ²
→ νλμ νλ‘μΈμ€ μμμ λ€μν μμ μ λμμ νκΈ° μν΄ μ€λ λκ° κ°μ λ 립μ μΌλ‘ μ‘΄μ¬νμ¬ μΌμ μν
#2 μ€λ λμ μ¬μ©
μ€λ λ μμ± λ°©λ²
1. Thread ν΄λμ€λ₯Ό μμνμ¬ run() λ©μλ ꡬν
2. Runnable μΈν°νμ΄μ€ ꡬν → Runnable μΈν°νμ΄μ€ : λͺΈμ²΄κ° μλ λ©μλ run() λ©μλ λ¨ νλλ§μ κ°μ§λ μΈν°νμ΄μ€
#2-1 Thread ν΄λμ€ μμ
: run() λ©μλλ₯Ό ꡬννμ§λ§, μ€ννκΈ° μν΄μλ start() λ©μλλ₯Ό νΈμΆν΄μΌν¨
#2-2 Runnable μΈν°νμ΄μ€ μμ
: Runnableμ λ§€κ°κ°μΌλ‘ κ°λ μμ±μλ₯Ό νΈμΆν΄ μμ±
Thread th = new Thread(Runnableμ μμν μΈμ€ν΄μ€);
: μ€μ Thread ν΄λμ€κ° μ€λ λλ₯Ό μ€ννλ 주체μ΄κ³ , Runnable μΈν°νμ΄μ€λ₯Ό μμν ν΄λμ€λ μ€ν μ½λλ₯Ό μ§λ κ°μ²΄
#2-3 μ΅λͺ ν΄λμ€λ₯Ό λλ€μμΌλ‘ νν
: μ΅λͺ ν΄λμ€λ₯Ό λ§λ€μ΄μ μ¬μ© → μΈν°νμ΄μ€λ₯Ό μ΅λͺ κ°μ²΄λ‘ μ μΈνμ¬ μ²λ¦¬ : λ°λ‘ ν΄λμ€λ₯Ό λ§λ€μ§ μκ³ λ μ€λ λ ꡬν κ°λ₯
#2-4 Threadμ μ΄λ¦ λΆμ¬νκΈ°
: μ€λ λλ λ€μ€ μ€νμ΄ κ°λ₯ → μ€λ λκ° μ§ν μ€μΈ μμ μ μκΈ° μν΄ setName(); μ ν΅ν΄ μ΄λ¦ λΆμ¬ κ°λ₯
#2-5 λ©ν° μ€λ λ
: μ¬λ¬ κ°μ μ€λ λλ₯Ό μ΄μ©ν΄ λμμ μμ μ μν
: λΉλκΈ° μμ → κ°μ μκ°μ μλ‘ λ€λ₯Έ λ 립μ μΈ μ€λ λκ° μΌμ μ²λ¦¬νλ κ²
#3 μ€λ λ λκΈ°ν
: μ€λ λ μ¬μ΄μμ μμ μμ μ μμκ° μλͺ»λμ΄ κ²°κ³Όκ° λ€λ₯΄κ² λμ¬ μλ μμ
: μ¬λ¬ μ€λ λκ° νλμ 곡μ λ°μ΄ν°μ λμμ μ κ·Όνμ§ λͺ»νλλ‘ μ€λ λμ μ€νμ μ μ΄
#3-1 μ€λ λ λκΈ°ν μ²λ¦¬
: μκ³ μμ → λ©ν° μ€λ λ νλ‘κ·Έλ¨μμ λ¨ νλμ μ€λ λλ§ μ²λ¦¬ν μ μλ μμ
: λκΈ°ν μ²λ¦¬ → νλμ μ€λ λκ° μκ³ μμμ μ§μ νλ©΄ λ½μ κ±Έμ΄ λ€λ₯Έ μ€λ λκ° μνλμ§ λͺ»νλλ‘, μμ μ΄ λλλ©΄ λ½ ν΄μ
: Keyword → "synchronized"
: λ©μλ λκΈ°ν μ²λ¦¬ → λ©μλ μ΄λ¦ μμ ν€μλ μ¬μ©μ λ©μλ μ 체 λκΈ°ν μ²λ¦¬ / λ¨μ : μ²λ¦¬ μκ°μ΄ κΈΈμ΄μ§ κ²½μ° μ±λ₯μ μν₯μ λ―ΈμΉ¨
public synchronized void Ex()...
: λΈλ‘ λκΈ°ν μ²λ¦¬ → λ©μλ μ μ²΄κ° μλ νΉμ μμλ§ λκΈ°ν μ²λ¦¬, μ€μ μ€ννλ μ€λ λμ μΌλΆλΆμ λκΈ°ννμ¬ μ²λ¦¬
synchronized (κ°μ²΄λͺ
)...
#4 μ€λ λ μν
μν | μμ | μ€λͺ |
μμ± | NEW | μ€λ λ κ°μ²΄κ° μμ±λμμ§λ§, start()λ©μλ νΈμΆX |
λκΈ° | RUNNABLE | μ€ν λκΈ° λλ μ€ν μνλ‘ μΈμ λ μ§ κ° μ μλ μν |
μΌμμ μ§ | WATING | λ€λ₯Έ μ€λ λκ° μ’ λ£λ λ κΉμ§ λκΈ°νλ μν |
TIMED_WAITING | μ£Όμ΄μ§ μκ° λμ λκΈ°νλ μν | |
BLOCKED | λ½μ΄ ν릴 λκΉμ§ λκΈ°νλ μν | |
μ’ λ£ | TERMINATED | μνμ μ’ λ£ν μν |
#4-1 NEW μ RUNNABLE, TERMINATED
NEW : μ²μ μ€λ λκ° μμ±λ λ
RUNNABLE : μμ± μ΄νμ start()λ©μλλ₯Ό μ€ν μ
TERMINATED : μμ μ΄ν μ€λ λκ° μ’ λ£λλ©΄
#4-2 μ€λ λ WAIT
: νμμ μν΄μ μ€λ λλ₯Ό μ μ λ©μΆ€ μνλ‘ λλ κ² → μΌμ μκ°μ μ§μ νκ±°λ λ©μΆ€ μνμ λ½μ΄ ν릴 λκΉμ§ λκΈ°νλλ‘ ν μ μμ
sleep → μ£Όμ΄μ§ μκ° λμ μ€λ λλ₯Ό μ μ§μν€λ λ©μλ
wait()μ notify()
wait() → μ€λ λλ₯Ό λκΈ°μν¬ λ
notify() → λκΈ° μ€μΈ μ€λ λλ₯Ό λ€μ λμμν¬ λ
'π MENTOR JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Section#λΆλ‘1 _ DBμ λ°μ΄ν° (0) | 2025.01.28 |
---|---|
Section#19 _ νμΌ μ μΆλ ₯ (0) | 2025.01.26 |
Section#17 _ λλ€μ (0) | 2025.01.24 |
Section#16 _ 컬λ μ νλ μμν¬ (0) | 2025.01.23 |
Section#15 _ κΈ°λ³Έ API ν΄λμ€ (0) | 2025.01.22 |