728x90
λκΈ°/λΉλκΈ°? λΈλ‘νΉ/λ ΌλΈλ‘νΉ?
λκΈ°μ λΉλκΈ°, λΈλ‘νΉκ³Ό λ ΌλΈλ‘νΉμ κ°λ μ μ μ¬νκ² λκ»΄μ§ μ μμ§λ§ μλ‘ λ°λ‘보λ κ΄μ μ λ¬λ¦¬νκ³ μλ€.
λκΈ°/λΉλκΈ°λ μΌμ μ²λ¦¬νλ μμ(μμ )μ κ²°κ³Ό(μ²λ¦¬)μ κ΄λ ¨μλ κ°λ μΌλ‘ μ΄μ μμ μ’ λ£μ λμμ μμνλ©΄ λκΈ°, κ·Έλ μ§ μμΌλ©΄ λΉλκΈ°λ‘ κ΅¬λΆνλ€.
λΈλ‘νΉ/λ ΌλΈλ‘νΉμ μ μ΄κΆκ³Ό κ΄λ ¨μλ κ°λ μΌλ‘ ν¨μ νΈμΆ μ μ μ΄κΆμ΄ λμ΄κ°λ©΄ λΈλ‘νΉ, κ·Έλ μ§ μκ³ μμ μ ν μΌμ μ§μνλ©΄ λ ΌλΈλ‘νΉμΌλ‘ ꡬλΆνλ€.
λκΈ°(Synchronous)
- μμ
μ λμμ μννκ±°λ λμμ λλκ±°λ λλλ λμμ μμν¨
- μμ² μμ μ μ’ λ£ μμ κ³Ό λλ¨Έμ§ μμ μμ² μμ μμ μ λμμ±
- νΈμΆν ν¨μμ μμ μλ£ μλ΅μ΄ νμν΄ μμ μλ£ μ¬λΆλ₯Ό κ³μν΄μ 묻거λ μλ΅μ κΈ°λ€λ¦Ό
- νΈμΆν ν¨μμ μμ μλ£ μ¬λΆμ λν΄ κ³μν΄μ κ΄μ¬μ κ°μ
- μλ΅(리ν΄κ°)μ λν΄ μ¦κ°μ μΌλ‘ μ²λ¦¬
λΉλκΈ°(Asynchronous)
- μμ² μμ μ μ’ λ£μ λ€λ₯Έ μμ²μ μμ μμ μ΄ μΌμΉνμ§ μμΌλ©° λλλ λμμ μμνμ§ μμ
- ν¨μλ₯Ό νΈμΆνμ¬ μ€νλ§ μν¬ λΏ μμ μ μλ£ μ¬λΆμλ κ΄μ¬μ κ°μ§ μμΌλ©° μμ μ μμ μ κ³μν΄μ μ΄μ΄κ°
- μλ΅(리ν΄κ°)μ λν μ²λ¦¬λ μ¦κ°μ μΌλ‘ μ΄λ£¨μ΄μ§ μλ, μ΄λ£¨μ΄μ§μ§ μμ μλ μμ(λμ€μ μ²λ¦¬)
- μμ² λ° ν¨μ νΈμΆ μ μ½λ°± ν¨μλ₯Ό ν¨κ» μ λ¬νκ³ , μλ΅μ΄ μ€λΉλλ©΄ ν¨κ» λ³΄λΈ μ½λ°± ν¨μκ° μ€νλ¨
λΈλ‘νΉ(Blocking)
- A ν¨μκ° B ν¨μλ₯Ό νΈμΆνλ©΄ Aλ Bμκ² μ μ΄κΆμ λκ²¨μ£Όκ³ , Bλ μμ μ μμ μ΄ λλ λκΉμ§ μ μ΄κΆμ κ°μ§κ³ μμ
- A ν¨μλ B ν¨μμ μ€νμ΄ λλ λκΉμ§ λ©μΆκ³ κΈ°λ€λ¦Ό
- B ν¨μκ° μνμ μλ£ν΄μ μ μ΄κΆμ λ€μ Aν¨μμκ² λ겨주면 A ν¨μλ μμ μ μμ μ λ€μ μ€ν
λ ΌλΈλ‘νΉ(Non-Blocking)
- A ν¨μκ° B ν¨μλ₯Ό νΈμΆνλ©΄ μ μ΄κΆμ λμ΄κ°μ§ μμ μ± B ν¨μκ° μ€ν
- ν¨μ νΈμΆ μ μ μ΄κΆμ΄ Bν¨μμκ² λμ΄κ°μ§λ§ λ°λ‘ A ν¨μμκ² λμ΄κ°λ€κ³ 보λ λ νΌλ°μ€λ μμ§λ§ μ΄μ°λλ ν΅μ¬μ νΈμΆλ ν¨μκ° μ€ν μ€μΌ λλ μ μ΄κΆμ κ°μ§κ³ μλ€λ μ¬μ€μ
- A ν¨μλ μ¬μ ν μ μ΄κΆμ κ°μ§κ³ μμΌλ―λ‘ B ν¨μμ μ€ν/μ’ λ£ μ¬λΆμ κ΄κ³μμ΄ κ³μν΄μ μμ μ μμ μν
λκΈ°/λΉλκΈ° + λΈλ‘νΉ/λ ΈλΈλ‘νΉ μ‘°ν©
1) Sync-Blocking
- A ν¨μλ B ν¨μλ₯Ό νΈμΆνλ©° μ μ΄κΆμ λκ²¨μ£Όκ³ (λΈλ‘νΉ), ν¨μ Bμ 리ν΄κ°μ κΈ°λ€λ¦Ό(λκΈ°)
- A ν¨μλ B ν¨μμ 리ν΄κ°κ³Ό μ μ΄κΆμ κΈ°λ€λ¦¬λ©° μ무κ²λ νμ§ μμ
2) Sync-Nonblocking
- A ν¨μλ B ν¨μλ₯Ό νΈμΆνλ©° μ μ΄κΆμ λκΈ°μ§ μκ³ μμ μ μμ μ κ³μ μνν¨(λ ΌλΈλ‘νΉ)
- A ν¨μλ B ν¨μμ 리ν΄κ°μ΄ νμνκΈ° λλ¬Έμ μμ μ μμ μ€ν μ€κ°μ€κ° B ν¨μμ μ’ λ£ μ¬λΆλ₯Ό λ¬Όμ΄μ νμΈν¨(λκΈ°)
- λνμ μ) Polling
3) Async-Nonblocking
- A ν¨μλ B ν¨μλ₯Ό νΈμΆνλ©° μ μ΄κΆμ λκΈ°μ§ μκ³ μμ μ μμ μ κ³μ μνν¨(λ ΌλΈλ‘νΉ)
- A ν¨μλ B ν¨μ νΈμΆ μ μ½λ°± ν¨μλ₯Ό λ겨주며 B ν¨μμ μ’ λ£ μ¬λΆμ κ΄μ¬μ κ°μ§ μμ(λκΈ°)
- B ν¨μλ μμ μ μμ μ΄ μλ£λλ©΄ A ν¨μκ° μ€ μ½λ°± ν¨μλ₯Ό μ€ν(λκΈ°)
4) Async-Blocking
- A ν¨μλ B ν¨μλ₯Ό νΈμΆνλ©° B ν¨μμ μ’ λ£ μ¦, 리ν΄κ°μ μ κ²½μ°μ§ μμΌλ©° μ½λ°± ν¨μ λ§μ 보λ(λΉλκΈ°)
- A ν¨μλ B ν¨μμ μμ μ κ΄μ¬μ΄ μμ§λ§ μ μ΄κΆμ λ겨 B ν¨μκ° μ’ λ£λ λκΉμ§ κΈ°λ€λ¦Ό(λΈλ‘νΉ)
728x90