π₯οΈ λ°±μλ/Java
[ch.13] μ°λ λ μ€ν μ μ΄ λ©μλ
OR15A
2023. 11. 15. 20:10
μ°λ λμ μ€ν μ μ΄
- “ν¨μ¨μ μΈ λ©ν°μ°λ λ νλ‘κ·Έλ¨ λ§λ€κΈ°”
- =μ κ΅ν μ€μΌμ€λ§μ ν΅ν΄ νλ‘μΈμ€μκ² μ£Όμ΄μ§ μμκ³Ό μκ°μ μ¬λ¬ μ°λ λκ° λλΉμμ΄ μ μ¬μ©νλλ‘ νλ‘κ·Έλλ° νλ κ².
λ©μλ(1)
- staticλ©μλλΌ μμ μκ²λ§ μ¬μ©μ΄ κ°λ₯ν¨. (μμ =νμ¬ μ€ν μ€μΈ μ°λ λ)
λ©μλ(2)
μ°λ λμ μ€μΌμ€λ§ κ΄λ ¨ λ©μλ
sleep(μκ°) staticλ©μλ
- μ§μ λ μκ°λμ μ°λ λ λ©μΆκΈ°.
- sleepμ μν΄ μΌμμ μ§λ μ°λ λλ₯Ό κΉ¨μ°λ(μ€νλκΈ° μνλ‘ λ§λ€κΈ°) λ°©λ²
- β μ§μ λ μκ° λ€ λκΈ°
- β‘ interrupt( )νΈμΆ
- sleep( )νΈμΆ μ λ°λμ try-catchλ¬ΈμΌλ‘ μμΈμ²λ¦¬ ν΄μ£Όμ΄μΌ ν¨. (μ΄κ²μ λ©μλλ‘ λ§λ€μ΄λ λ¨)
- λ€λ₯Έ μ°λ λκ° νμ¬ μ°λ λμκ² interruptνλ©΄
- sleep( )λ©μλκ° Interrupted Exceptionμ λμ§κ³ μΌμμ μ§ μνμμ λΉ μ Έλμμ μ€νλκΈ°ν¨.
- sleep( )μ νμ νμ¬ μ€νμ€μΈ μ°λ λμ λν΄ λμν¨.
t1.sleep(1000)X Thread.sleep(1000) O
deprecatedλ λ©μλλ€ (κ΅μ°©μν μΌμΌμΌμ)
- suspend( ): μ°λ λ λ©μΆκΈ°
- resume( ): suspendλ‘ μ μ§λ μ°λ λλ₯Ό μ€νλκΈ° μνλ‘ λ§λ¦
- stop( ): νΈμΆλλ μ¦μ μ°λ λλ₯Ό μ’ λ£ν¨
μ°λ λμ μμ μ€λ¨
- κ°μ μ μΈ μμ μ€λ¨
- μ§μ μ μΈ μμ μ€λ¨
interrupt( )
- β μ£Όλ‘ μ°λ λμ μμ μ κ°μ λ‘ μ€λ¨μν€κΈ° μν΄ μ¬μ©ν¨. νμ¬ μμ μ€μΈ μ°λ λμκ² interrupt() λ©μλλ₯Ό νΈμΆνλ©΄, ν΄λΉ μ°λ λλ μ€ν λκΈ° μνκ° λ¨. (κ°μ μ μΈ μμ μ€λ¨μ²λΌ λ¨)
- β‘sleep()μ΄λ join() λ©μλλ₯Ό νΈμΆνκ³ μλ μ°λ λμκ² interrupt()λ₯Ό νΈμΆνλ©΄, ν΄λΉ μ°λ λλ InterruptedException μμΈλ₯Ό λ°μμν€κ³ μ€ν λκΈ° μνκ° λ¨. μ΄ λλ¬Έμ ν΄λΉ μ°λ λλ μΌμμ μ§ μνμμ λ²μ΄λκ² λμ΄, λ€μ μμ
μ μνν μ μμ.
- β‘λ² κ²½μ° μ°λ λκ° sleep( ), wait( ), join( )μΌλ‘ μΌμμ μ§ μνκ° λ¨. → interrupt( ) νΈμΆ. →μΌμμ μ§ λ©μλμμ InterruptedException λ°μ. → μ°λ λ μ€νλκΈ° μνκ° λ¨.
- β’interrupt() λ©μλλ μ°λ λκ° λ¬΄ν 루νμ λΉ μ Έ μμ λ, μ¦μ μ€λ¨μν€κΈ° μν΄ μ¬μ©ν μ μμ. μ΄ κ²½μ°μλ interrupt() λ©μλλ₯Ό νΈμΆνλ©΄, μ°λ λλ InterruptedException μμΈλ₯Ό λ°μμν€κ³ μ€ν λκΈ° μνκ° λ¨.
- →λ°λΌμ, interrupt() λ©μλμ μν μ μν©μ λ°λΌ λ¬λΌμ§μ§λ§, μ£Όλ‘ μ°λ λλ₯Ό κ°μ λ‘ μ€λ¨μν€κΈ° μν΄ μ¬μ©λ¨.
interrupt( )μ interrupted( )
yield( ) staticλ©μλ
- μ°λ λ μμ μκ² μ£Όμ΄μ§ μκ°μ λ€μ μ°¨λ‘ μ°λ λμκ² μ보ν¨.
- νμ¬ μ€ν μ€μΈ μ°λ λκ° λ€λ₯Έ μ°λ λμκ² μ€νμ μ보νκ³ , λ€μ μ°¨λ‘μ μ°λ λμκ² CPUλ₯Ό μλ.
- μ€ν μ€μΈ λ€λ₯Έ μ°λ λμκ² μ€ν κΈ°νλ₯Ό μ£Όλ μν .
join( )
- μ°λ λ μμ μ΄ νλ μμ μ μ μ λ©μΆκ³ λ€λ₯Έ μ°λ λκ° μ§μ λ μκ°λμ μμ μ μννκ² ν¨.
- νΈμΆ μ sleepμ²λΌ try-catchλ¬ΈμΌλ‘ κ°μΈμΌν¨.