블로킹과 논블로킹의 개념은 주로 I/O 작업에서 중요하게 쓰인다.
블로킹(Blocking): 블록된 상태를 의미한다
- 블록된 상태란 특정 연산이 종료될 때까지 프로그램 실행이 멈춘 상태를 말합니다.
- 다른 함수로 제어권을 넘겨주어 제어권이 돌아오기까지 기다립니다.
예시: 파일을 읽어오는 함수가 있을 경우 파일을 모두 읽어와야만 다음 함수를 실행 시킬 수 있음
논블로킹(Non-blocking): 논블록 상태를 의미한다.
- 어떤 함수가 호출되었을 때 그 결과를 기다리지 않고 바로 반환하는 것을 말합니다.
- 다른 함수를 호출하지만 제어권은 넘겨주지 않아 계속 진행됩니다.
예시: 위 예시와 다르게 파일 읽기를 요청한 후 즉시 제어권을 반환하여 다른 일을 진행할 수 있다.
'CS' 카테고리의 다른 글
[프로그래밍] MAS란? 마이크로서비스 아키텍처 (0) | 2023.09.30 |
---|---|
[프로그래밍] DDD란? (Domain-Driver Design) (0) | 2023.09.29 |
[프로그래밍] 절차지향과 객체지향 프로그래밍이란 (0) | 2023.09.29 |
[프로그래밍] 동기와 비동기 방식의 차이점 (0) | 2023.09.29 |
교착상태란? (0) | 2023.07.12 |