← 질문 목록
#210깊이 0

블로킹과 논블로킹 I/O의 결정적 차이는 무엇인가?

운영체제기초비동기

제어권의 반환 시점이다. 블로킹은 작업 완료까지 기다리며, 논블로킹은 호출 즉시 제어권을 돌려준다.

순서블로킹 호출자논블로킹 호출자
1읽기를 부른다읽기를 부른다
2아무것도 하지 않습니다EAGAIN으로 바로 돌아온다
3아무것도 하지 않습니다다른 일을 한다
4데이터를 받는다데이터를 받는다

블로킹 호출자는 읽기가 끝날 때까지 다음 일을 시작하지 못한다. 코드는 직관적이지만 그동안 스레드가 아무것도 못 한다.

논블로킹은 대기 시간 동안 다른 일을 할 수 있다. 대신 작업 완료 여부를 계속 확인하거나 알림을 받아야 하므로 로직이 복잡해진다.

동기·비동기는 작업 완료를 누가 어떻게 알리는지의 구분이다. 블로킹·논블로킹과는 축이 다르다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

블로킹과 논블로킹 I/O의 결정적 차이는 무엇인가?