CS

[프로그래밍] 블로킹과 논블로킹의 차이

juhwan 2023. 9. 29. 02:46

블로킹과 논블로킹의 개념은 주로 I/O 작업에서 중요하게 쓰인다.

블로킹(Blocking): 블록된 상태를 의미한다

  • 블록된 상태란 특정 연산이 종료될 때까지 프로그램 실행이 멈춘 상태를 말합니다.
  • 다른 함수로 제어권을 넘겨주어 제어권이 돌아오기까지 기다립니다.
    예시: 파일을 읽어오는 함수가 있을 경우 파일을 모두 읽어와야만 다음 함수를 실행 시킬 수 있음

논블로킹(Non-blocking): 논블록 상태를 의미한다.

  • 어떤 함수가 호출되었을 때 그 결과를 기다리지 않고 바로 반환하는 것을 말합니다.
  • 다른 함수를 호출하지만 제어권은 넘겨주지 않아 계속 진행됩니다.
    예시: 위 예시와 다르게 파일 읽기를 요청한 후 즉시 제어권을 반환하여 다른 일을 진행할 수 있다.