μ°Έκ³
μλλ‘μ΄λ λΉλκΈ° νλ‘κ·Έλλ° μ±
http://acornpub.co.kr/book/async-android
μλλ‘μ΄λμμ κ° μ ν리μΌμ΄μ μ λ§€μ° μ§§κ² κ΅λνλ©΄μ CPUλ₯Ό μ¬μ©νλ€. μ΄μ체μ κ° CPUμ μκ°λμ λΉλ²νκ² μ€μΌμ₯΄λ§ν΄μ, μκ° λΆν λ°©μμΌλ‘ μ¬μ©νλ€. λ¨μΌ νλ‘μΈμ λλ°μ΄μ€λ νλ μ΄μμ μ ν리μΌμ΄μ μ λμμ λμνλ κ²μ²λΌ 보μ΄κ² νλ€.
νλ‘μΈμ€ μμμλ νλ μ΄μμ μ€ν μ€μΈ μ€λλλ€μ΄ μ‘΄μ¬ν μ μκ³ , μ΄μ체μ λ μ€λ λμ CPU μκ°λμ ν λΉνλ€.
μ±μμ λ©μΈ μ€λ λκ° μ¬μ©μ μνΈμμ©(μ λ ₯, μΆλ ₯) κΈ°λ₯μ λ§‘κ³ μλ€. λ©μΈ μ€λ λκ° λ무 λ¬΄κ±°μ΄ κ³μ°μ΄λ λ€νΈμν¬ μμ λ±μΌλ‘ λ°μλ€λ©΄ μ¬μ©μ μνΈμμ©μ΄ λ¦μ΄μ§κ² λλ©΄μ μ¬μ©μ κ²½νμ μΉλͺ μ μ΄λ€. λ©μΈ μ€λ λλ λ΄μνλ©΄ μλλ€.
λ©μΈ μ€λ λμμ μ€λ 걸리λ μμ μ μμ κΈ° μν΄, λ°±κ·ΈλΌμ΄λμμ μμ μ μ²λ¦¬νκ² νλ©΄ λλ€. λ©μΈ μ€λ λλ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό λΆλλ½κ² κ°±μ νκ³ μ¬μ©μ μνΈμμ©μ μν΄ μ μ ν μκ°μ μλ΅νλ©΄ λλ€. κ·Έλ κ²νκΈ° μν΄ νμ νλ μ€λ λ μ¬μ΄μμ λ°μ΄ν°λ₯Ό μμ νκ² μ λ¬ν΄μΌ νλ€. λ 립μ μΈ μ½λλ€μ λμμ μ€ννλ κ²μ λμμ±μ΄λΌ λΆλ₯Έλ€.
μλ‘μ΄ μ€λ λλ₯Ό μμ±νλ κ²μ μ½μ§λ§, λμμ±μ΄ μ λμκ°κ² νλ κ²μ μ΄λ ΅λ€.
λμμ± μννΈμ¨μ΄μ μ΄μ
1) μ νμ±correctness : μΌκ΄λ μ νν κ²°κ³Όλ₯Ό λ§λ¦
μ¬λ¬ μ€λ λκ° λ³ΈμΈλ€ μΈκ³μμλ μ¬λ°λ₯΄κ² λμν κ²μ΄λ, μ 체 νλ‘κ·Έλ¨ μΈ‘λ©΄μμ μ νμ± μ΄μκ° μκΈ°λ κ².
* ν΄κ²° λ°©λ² : νΉμ μμμ λμ μ κ·Όμ λ§λ κ². > μνΈ λ°°μ¬mutual exclusionλΌκ³ λΆλ₯Έλ€.
2) νλμ±liveness : μλ£λ₯Ό ν₯ν μ μ§
μ νμ± μ΄μλ₯Ό λ€λ£¨λ€κ° μκΈ΄λ€.
μ¬λ¬ μ€λ λμ μμ μ κ·Όμ λ΄μνλ€ λ³΄λ λ³λͺ©νμ, λ°λλ½deadlock λ±μ΄ μκΈ°λ κ²μ΄λ€.
+ μλλ‘μ΄λμμ μκΈ°λ μ΄μ
3) μλͺ μ£ΌκΈ°
λ¬Έμ 1] μλͺ μ£ΌκΈ°λ₯Ό κ°μ§ μΈμ€ν΄μ€(μ‘ν°λΉν°, νλκ·Έλ¨ΌνΈ λ±)λ κ°λΉμ§ 컬λ μ λμμ΄ λμ΄μΌ νλλ°, μ΄ μΈμ€ν΄μ€μ κ΄λ ¨λ λ°±κ·ΈλΌμ΄λ μ€λ λλ κ°λΉμ§ 컬λ μ μ νΌνκ±°λ λ©λͺ¨λ¦¬ λμκ° μΌμ΄λ μ μμ.
λ¬Έμ 2] μλͺ μ£ΌκΈ°λ₯Ό κ°μ§ μΈμ€ν΄μ€κ° μ’ λ£ν μ μμ΄μ λ°±κ·ΈλΌμ΄λ μμ μ΄ κ³μλλ κ²½μ° CPU, λ°°ν°λ¦¬ λλΉ λ°μμ΄ κ°λ₯νλ€.
λ¬Έμ 3] μλλ‘μ΄λ μμ€ν μ΄ μ’ λ£νλ €κ³ νλ νλ‘μΈμ€μμ μμ§ μμ μ€μΈ λ°±κ·ΈλΌμ΄λ μμ μ΄ μλ€λ©΄, νλ‘μΈμ€λ₯Ό μμ§ μ’ λ£νμ§ μμμμ μμ€ν μ μλ €μ€μΌ ν¨.
> λ°±κ·ΈλΌμ΄λ μμ μ μ μ νκ² μ·¨μνκ±°λ μλͺ μ£ΌκΈ°λ‘λΆν° μ μ ν κ³³μΌλ‘ λΆλ¦¬μμΌμΌ νλ€.
4) μ¬μ©μ μΈν°νμ΄μ€μ μ‘°μ
μ€μ§ λ©μΈ μ€λ λλ§μ΄ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό μ‘°μν μ μλ€.
κ²°κ³Ό
λ©μΈ μ€λ λκ° λ°±κ·ΈλΌμ΄λ μμ κ²°κ³Όμ ν¨κ» μ¬μ©μ μΈν°νμ΄μ€λ₯Ό κ°±μ νλλ‘ λ°±κ·ΈλΌμ΄λ μ€λ λλ₯Ό λ©μΈ μ€λ λμ ν¨κ» μμ νκ² λκΈ°νν΄μΌ νλ€.
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Android][λΉλκΈ° νλ‘κ·Έλλ°] Handler, HandlerThread μ΄μ©νκΈ° (0) | 2023.06.23 |
---|---|
[Git] νμ νλ‘μ νΈ κ΄λ¦¬ μ μΈμμΌ ν GIT κ·μΉ (0) | 2023.06.23 |
[GitLab] SSH ν€ λ±λ‘νκΈ° (0) | 2023.06.19 |
[Hilt] @Qualifier (2) | 2023.06.10 |
[Android Studio Flamingo Release] BuildConfig μ 보μ (0) | 2023.06.10 |