ch25 : Thread
λͺ©μ°¨
λ©ν° μ€λ λλ₯Ό μ¬μ©νλ μ΄μ
μ€ν λ°©λ² - λ©μΈ ν¨μμ μ¬λ¬ μ€λ λλ₯Ό μμμμΌμ£Όλ©΄ λλ€.
Runnable μΈν°νμ΄μ€μ Thread ν΄λμ€
μ€λ λλ₯Ό μμ±νλ λ°©λ²μλ λ κ°μ§κ° μλ€.
Runnable
μΈν°νμ΄μ€
Thread
ν΄λμ€ (Runnable
μΈν°νμ΄μ€λ₯Ό μμλ°μ ν΄λμ€. μ¦, ꡬνν¨)(λλ€ java.langμ μμΌλ―λ‘ import μν΄λ λλ€.)
Runnable
μΈν°νμ΄μ€μλvoid run()
λ§ μ μΈλμ΄ μλ€. μ΄ λ©μλλ μ€λ λκ° μμλλ©΄ μνλλ λ©μλμ΄λ€. βThread
ν΄λμ€λ ν΄λΉ λ©μλλ§ κ΅¬νν΄μ£Όλ©΄ λλ€.Thread
ν΄λμ€λ₯Ό νμ₯ν κ²½μ°κ° μ¬μ©μ΄ νΈλ¦¬νλ€.κ·ΈλΌ
Runnable
μΈν°νμ΄μ€λ μΈμ μ¬μ©ν κΉ? ν΄λμ€λ λ€μ€ μμμ΄ λΆκ°λ₯νλ€. λ΄κ° λ§λλ ν΄λμ€κ°Thread
ν΄λμ€ μΈμλ λ€λ₯Έ ν΄λμ€λ₯Ό μμλ°μμΌ νλ κ²½μ°μλRunnable
μΈν°νμ΄μ€μ μμλ°μΌλ©΄ λλ€.
μ€λ λ μ€ν λ°©μ
μ€λ λκ° μνλλ λ©μλλ
run()
μ΄λ€. (κ·Έλ¦¬κ³ μ΄ λ©μλκ° μ’ λ£λ λ μ€λ λκ° μ’ λ£λλ€.)μ€λ λλ₯Ό μμνλ λ©μλλ
start()
μ΄λ€.λ κ°μ§ λ°©μμ μ€λ λλ₯Ό μ€ννλ λ°©μμ΄ λ€λ₯΄λ€.
Runnable
μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ μμThread
ν΄λμ€λ₯Ό νμ₯ν ν΄λμ€μ μμ
μ€λ λμ μ€ν
start()
λ₯Ό νΈμΆνλ©΄run()
λ©μλ λ΄μ©μ΄ λλλ λ§λ μ°λ λλ₯Ό μμν λ©μλμμ κ·Έ λ€μ μ€μ΄ μ€νλλ€.μ°λ λ μμν λ 100 μ«μλ₯Ό λκ²¨μ£Όκ³ μΆλ€λ©΄? -> μ°λ λλ₯Ό μμλ°μ μμ±μμ 맀κ°λ³μλ‘ λ°μΌλ©΄ λλ€.
μ€λ λμ μ’ λ£
sleep()
맀κ°λ³μλ‘ λμ΄μ¨ μκ°λ§νΌ λκΈ°νλ€.
μ¬μ©ν λ νμ try-catchλ‘ λ¬Άμ΄μ€λ€.
InterrptedException
νΉμ μμ μμΈ ν΄λμ€λ‘ μμΈμ²λ¦¬ ν΄μ£Όμ΄μΌ νλ€.
λ°λͺ¬ μ€λ λ
μΌλ° μ€λ λλ JVMμ΄ μ’ λ£ν μ μμΌλ, λ°λͺ¬ μ€λ λλ JVMμ΄ λλΌ μ μλ€.
μ€λ λ μ€ν(
start()
)μ μ λ°λͺ¬μ€λ λλ‘ μ§μ λμ΄μΌ νλ€.μ€λ λκ°μ²΄.setDaemon(true)
; // λ°λͺ¬μ€λ λ μ§μ
λ°λͺ¬ μ€λ λλ ν΄λΉ μ€λ λκ° μ’ λ£λμ§ μμλ, λ€λ₯Έ μ€νμ€μΈ μ€λ λκ° μλ€λ©΄ μ’ λ£λλ€.
ex) λΆκ°μ μΈ μμ μ λ°λͺ¬μ€λ λλ‘ λ§λ λ€.
λͺ¨λν°λ§ μ€λ λλ₯Ό λ°λͺ¬μ€λ λλ‘ λ§λ€κ³ , μΌλ° μ€λ λκ° μ’ λ£λλ©΄ μλμΌλ‘ λͺ¨λν°λ§ μ€λ λλ μ’ λ£μμΌ νλ‘μΈμ€λ₯Ό λλ΄λ κ²½μ°
Last updated