thread
-
[Android] Thread, Handler, Looper, Message Queue λ€λ£¨κΈ°Android 2021. 11. 11. 03:13
Asynchronous Programming μμ¦ λλΆλΆμ νλ‘κ·Έλ¨λ€μ λΉλκΈ°μ μΌλ‘ μ€νμ΄ λ©λλ€. μλλ‘μ΄λμμλ λ§μ°¬κ°μ§λ‘ λ€μν λ°©λ²μ μ΄μ©νμ¬ λΉλκΈ° νλ‘κ·Έλλ°μ ꡬνν μ μμ΅λλ€. λ³λμ Threadλ₯Ό μμ±νμ¬ λμμ μΌλ‘ μμ μ μ€ννκ² νλ λ°©λ²λΆν° AsyncTask, RxJava, RxKotlin, Coroutine λ± νΈλ¦¬νκ² κ΅¬νν μ μλλ‘ λ§μ λΌμ΄λΈλ¬λ¦¬λ€μ΄ λνλκ³ μμ΅λλ€. νμ§λ§ μλλ‘μ΄λμμ μ 곡ν΄μ£Όλ Thread, Handler, Looper, Message Queueλ₯Ό μ λλ‘ μκ³ μμ΄μΌ κΈ°λ³Έ μ리λ₯Ό κΉ¨λ«κ² λκ³ λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬λ€μ νΈλ¦¬ν¨μ μ μ μμ κ² κ°μ 곡λΆλ₯Ό νκ² λμμ΅λλ€. Thread μλλ‘μ΄λ μ ν리μΌμ΄μ μ μ€ννλ©΄ λ©λͺ¨λ¦¬μ μ¬λΌμ νλ‘μΈμ€κ° μ€νλκ³ μλ..
-
[Java] μλ° μ°λ λ κ΅μ°©μν(deadlock)Android/Java 2021. 2. 7. 17:01
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ κ°μ§κ³ 곡λΆνμ¬ μμ±ν κΈμ λλ€. Thread DeadLock μ΄λ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°νλ₯Ό ν΅ν΄ λ½μ νλνμ¬ λμΌν μμμ μ¬λ¬ κ³³μμ ν¨λΆλ‘ μ¬μ©νμ§ λͺ»νλλ‘ νμμ΅λλ€. νμ§λ§ λ κ°μ μ°λ λμμ μλ‘κ° κ°μ§κ³ μλ λ½μ΄ ν΄μ λκΈ°λ₯Ό κΈ°λ€λ¦¬λ μνκ° μκΈΈ μ μμΌλ©° μ΄λ¬ν μνλ₯Ό κ΅μ°©μν(deadlock) μ΄λΌκ³ ν©λλ€. κ΅μ°©μνκ° λλ©΄ μ΄λ€ μμ λ μ€νλμ§ λͺ»νκ³ μλ‘ μλλ°©μ μμ μ΄ λλκΈ°λ§ λ°λΌλ 무νμ λκΈ° μνμ λλ€. DeakLock λ°μ 쑰건 μνΈ λ°°μ (Mutual Exclusion) : ν μμμ λν΄ μ¬λ¬ μ°λ λ λμ μ κ·Ό λΆκ° μ μ μ λκΈ° (Hold and Wait) : μμμ κ°μ§κ³ μλ μνμμ λ€λ₯Έ μ°λ λκ° μ¬μ©νκ³ μλ μ..
-
[Java] μλ° μ°λ λμ λκΈ°νAndroid 2021. 2. 7. 16:57
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆνμ¬ μμ±ν κΈμ λλ€. μ°λ λ λκΈ°νλ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°ν μμ μ΄ νμμ λλ€. μ°λ λ λκΈ°νλ μ¬λ¬ μ°λ λκ° λμΌν 리μμ€λ₯Ό 곡μ νμ¬ μ¬μ©νκ² λλ©΄ μλ‘μ κ²°κ³Όμ μν₯μ μ£ΌκΈ° λλ¬Έμ λ°©μ§νλ κΈ°λ²μ λλ€. μ°λ λ λκΈ°νλ₯Ό νκΈ° μν΄μλ μκ³μμ(critical section)κ³Ό λ½(lock)μ μ¬μ©ν©λλ€. μκ³μμμΌλ‘ μ€μ ν ꡬμμ λμμ 리μμ€λ₯Ό μ¬μ©ν μ μλ ꡬμμ΄κ³ , λ½μ νλν μ°λ λμ λν΄μλ§ λ¦¬μμ€λ₯Ό μ¬μ©νλλ‘ νλ λ°©μμ λλ€. synchronizedλ₯Ό μ΄μ©ν λκΈ°ν μλ°μμλ synchronized ν€μλλ₯Ό μ¬μ©νμ¬ μκ³μμμ μ§μ νμ¬ λμμ 곡μ μμμ μ°¨μ§νμ§ μλλ‘ κ°μ ν©λλ€. synchronizedλ₯Ό μ¬μ©νλ λ°©λ²μ λ©μλ μ체μ μ μ©..
-
[Java] μλ° μ°λ λ μν, μ°μ μμ(State, Priority)Android/Java 2021. 2. 5. 02:19
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" μ μ°Έμ¬νμ¬ κ³΅λΆν κΈμ λλ€. λ©ν° μ°λ λ λ©ν° μ°λ λ νλ‘κ·Έλλ°μ΄λ νλμ μμ©νλ‘κ·Έλ¨μμ λμμ μ¬λ¬ μ²λ¦¬λ₯Ό νκΈ° μν΄ μ°λ λλ₯Ό μμ±νμ¬ μ΄μνλ νλ‘κ·Έλλ°μ λ§ν©λλ€. λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νΉμ§μ λμμ±κ³Ό λ³λ ¬μ±μ΄ μ‘΄μ¬ν©λλ€. νλμ μ½μ΄μμ μ¬λ¬ κ°μ μ°λ λλ₯Ό μ΄μνλ κ²μ λμμ±μΌλ‘ λΉ λ₯Έ μλλ‘ μ°λ λλ₯Ό λ²κ°μ κ°λ©΄μ μ€ννλ κ²μ λλ€. λ³λ ¬μ±μ λ€μμ μ½μ΄μμ κ° μ½μ΄μ μ°λ λλ₯Ό μμ±νμ¬ μ€νμν€λ κ²μ λλ€. μλ° μ°λ λ μν (Thread State) μλ° λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νλ©΄ λκΈ°ν/λΉλκΈ°ν λΏλ§ μλλΌ μ°λ λ μνλ₯Ό μ§μ μ μ΄ν κ²½μ°λ μκΉλλ€. μ°λ λ μ μ΄νκΈ° μ μ μ°λ λμ μνλ‘ μμμΌ νλλ° getState() λ©μλλ₯Ό ν΅ν΄ μ μ μμ΅λ..
-
[Java] μλ° μ°λ λ μμ±(Thread, Runnable)Android/Java 2021. 2. 2. 14:52
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆν λ΄μ©μ μ 리νμ¬ μ΄ κΈμ λλ€. Process vs Thread μλ°μ μ°λ λλ₯Ό μ€λͺ νκΈ° μ΄μ μ νλ‘μΈμ€μ μ°λ λμ μ°¨μ΄μ λν΄ κ°λ΅νκ²λλ§ μ νμκ° μμ΅λλ€. Process νλ‘μΈμ€μ μ¬μ μ μ μλ‘λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ»νκ² λ©λλ€. μλμ°μμ μ μ₯μ₯μΉμ μ μ₯λ μνλ₯Ό νλ‘κ·Έλ¨μ΄λΌκ³ νκ³ λλΈν΄λ¦μ ν΅ν΄ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌμ μ€νμ€μΈ νλ‘κ·Έλ¨ μΈμ€ν΄μ€λ₯Ό νλ‘μΈμ€λΌκ³ ν©λλ€. Thread ν νλ‘μΈμ€ λ΄μμ λμλλ μ€νλ¨μλ₯Ό λ»νκ² λ©λλ€. ν¬λ‘¬ λΈλΌμ°μ λΌλ νλ‘μΈμ€μμ μ νλΈμ μ μνμ¬ λμμμ μμ²ν λ μ νλΈ λ°μ΄ν°λ₯Ό λ€μ΄λ‘λ λ°μΌλ©΄μ λμμμ΄ μ€νλλ μμ μ΄ λμμ μ΄λ£¨μ΄μ§λ κ²λ μ°λ λλ₯Ό ν΅ν΄ κ°λ₯νκ² λ©λλ€. Thread μμ± μλ°μμ T..