blocking / non-blocking
Last updated
Last updated
Input/OutputμΌλ‘ μ /μΆλ ₯μ μλ―Ένλ€. I/Oμμ λ°μνλ μκ°μ CPUλ₯Ό μ¬μ©νμ§ λͺ»νκ³ λκΈ°νλ μκ°μ΄λ€. λ°λΌμ, μ μΆλ ₯μ΄ μλ£λ λκΉμ§ CPUλ λκΈ°νκ³ , μ΄ν리μΌμ΄μ μ€νμλ λν λλ €μ§κ² λλ λΉν¨μ¨μ μΈ νμμ΄ μκΈ΄λ€.
μ΄λ, μ μΆλ ₯μ΄ μλ£λκΈ° μ CPUκ° λκΈ°νλ μνλ₯Ό
blocking
μνλΌκ³ νλ€.
μλ‘ μμ μκΈ°ν μ
μΆλ ₯μ΄ μλ£λκΈ° μ κΉμ§ CPUκ° λκΈ°νλ λ°©μμ bloking I/O
λΌκ³ νλ€.
μ μ¬μ§μμ 보λ κ²μ²λΌ, μ΄ν리μΌμ΄μ μμ μ μΆλ ₯ μμ²μ 보λΈλ€ μλ£λ λ°μ΄ν°λ₯Ό μμ ν λκΉμ§ λκΈ°νλ€. μ¦, μ μΆλ ₯ μμ μλ£ μ κΉμ§ μ΄ν리μΌμ΄μ μ λ€λ₯Έ μμ μ μ€ννμ§ λͺ»νλ€λ κ²μ΄λ€.
Blocking I/O λͺ¨λΈμμ νλμ μ
μΆλ ₯ μμ
μλ£ μ κΉμ§ λ€λ₯Έ μμ
μ λͺ»νλ€λ κ²μ μ΄ν리μΌμ΄μ
μ μ±λ₯μ ν° μν₯μ λ―ΈμΉλ€. μ΄κ²μ blocking νμ§ μλ ννμ μ
μΆλ ₯λ°©μμ ν΅ν΄ ν΄κ²°νλλ° λ°λ‘ Non-blocking I/O
μ΄λ€.
Non-blocking I/Oλ μ΄ν리μΌμ΄μ μμ μ μΆλ ₯ μμ²μ 보λ΄λ μκ° κ²°κ³Ό λ©μμ§λ₯Ό λ°ννλ€.(μ λ ₯ λ°μ΄ν°κ° μλ€λ©΄ μλ¬ λ©μμ§ λ°ν) λν, μ μ΄κΆμ λκ²¨μ£Όμ§ μκΈ° λλ¬Έμ κ²°κ³Ό λ©μμ§λ₯Ό λ°μ μ΄ν리μΌμ΄μ μ μ¦μ μμ μ μ΄μ΄μ μ€μ ν μ μλ€. μ΅μ’ μ μΌλ‘ μ λ ₯ λ°μ΄ν°κ° λ°μνλ©΄, μ μ μκ² κ²°κ³Ό λ°μ΄ν°λ₯Ό 리ν΄νκ² λλ€.
μμ Blocking I/Oμ λΉκ΅ν΄ 보면 νμ€ν blocking μκ°μ μ€μΌμ μλ€λ μ μμ ν¨μ¨μ μ΄λ€.
νμ§λ§ Blocking I/O λ³΄λ€ μμ€ν νΈμΆμ΄ λ°λ³΅μ μΌλ‘ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ μμλλΉκ° λ°μνλ€.