Blocking
- μμ μ μμ
μ μ§ννλ€κ° λ€λ₯Έ 주체μ μμ
μ΄ μμλλ©΄ λ€λ₯Έ μμ
μ΄ λλ λκΉμ§ κΈ°λ€λ Έλ€κ° μμ μ μμ
μ μμνλ κ²
- κΈ°λ€λ¦¬λ λμμ μ무κ²λ λͺ»νλ€.
Non-Blocking
- λ€λ₯Έ 주체μ μμ
μ κ΄λ ¨μμ΄ μμ μ μμ
μ νλ κ²
- λ겨μ€κ±°λ λ°λ‘ λκ²¨μ£Όκ³ μκΈ° ν κΊΌ νλ¬κ°λ€.
Synchronous
- μμ
μ λμμ μννκ±°λ ,λμμ λλκ±°λ , λλλ λμμ μμν¨μ μλ―Έ
- μλ μμ
μ λ€λ₯Έ κ³³μ μμ²μ νκ³ κΈ°λ€λ¦¬κ±°λ λ€λ₯ΈμΌμ μ§ν -> λμμ λν μλ΅μ΄ μ€λ©΄ κ·Έκ²°κ³Όλ₯Ό ν΅ν΄μ λ°λ‘ μ²λ¦¬μ§ν
Asynchronous
- μμ ,μ’
λ£κ° μΌμΉνμ§μμΌλ©°, λλλ λμμ μμνμ§ μμμ μλ―Ένλ€.
- μλ μ§νμ νλ€κ° λ€λ₯Έ κ³³μ λμμ μμ²νκ³ μ κΈ°λ€λ¦¬κ±°λ λ€λ₯ΈμΌμ μ§ν -> λμμ λν μλ΅μ΄ μλ κ·Έ μλ΅κ²°κ³Όμλν΄μ λ°λ‘κ° μλλΌ μΈμ κ° μ²λ¦¬λ₯Ό νλ©΄λλ€.
μ΄ 4κ°μ§λ₯Ό μ‘°ν©
Blocking/Sync
-
blockingμ κ΄μ : μ μ΄κΆ -> λ€λ₯Έ μμ
μ§νμ λμ x
-
Sync : κ²°κ³Όμ μ²λ¦¬ -> μλ΅μ λ°λ‘μ²λ¦¬
== > λ€λ₯Έ μμ
μ μ§νμ μλ΅μ΄ μ¬λκΉμ§ μ무 μμ
λ νμ§μλ€κ° μλ΅κ²°κ³Όκ° μ€λ©΄ λ°λ‘ μ²λ¦¬
NonBlocking/Sync
- λ€λ₯Έ μμ
μ μ§νμ μ€κ°μ€κ°λ§λ€ μλ΅μ κ²°κ³Όκ° λμλμ§ κ³μ λ¬Όμ΄λ³Έλ€.
- μλ΅μ κΈ°λ€λ¦΄λ μκΈ° ν μΌμ νλ©΄μ μ€κ°μ€κ°μ κ²°κ³Όκ° λμλμ§ μμ² -> κ²°κ³Όκ° λμ€λ©΄ λ°λ‘ μ²λ¦¬
Blocking/Async
- μμ
μ μμ²νκ³ κ²°κ³Όμ κ΄μ¬μ μμ§λ§ κΈ°λ€λ¦°λ€ -> κ²°κ³Όλ₯Ό λ°μΌλ©΄ λμ€μ μ²λ¦¬.
Non-Blocking/Async
- λ€λ₯Έ μμ
μ΄ μμλμ΄λ μμ μ΄ νλκ²μ λ©μΆμ§μμ -> μμͺ½μμ κ°μμ²λ¦¬
- μμ μ μΌμ λλ΄κ³ μ²λ¦¬ μ§ν
-> μλ° μ€ν¬λ¦½νΈ API μμ²νκ³ call back μΌλ‘ μμ² μ²λ¦¬μμ μ¬μ©λλ€.