← 질문 목록
#196깊이 0

동기/비동기 및 블로킹/논블로킹의 차이는 무엇인가?

운영체제심화비동기

동기와 비동기는 호출한 함수의 완료 여부를 누가 확인하느냐의 차이이고, 블로킹과 논블로킹은 호출된 함수가 제어권을 언제 돌려주느냐의 차이다.

기준동기/비동기블로킹/논블로킹
핵심 관점작업 완료 여부 및 순서제어권의 반환 시점
주체호출한 쪽에서 확인호출된 쪽에서 반환

논블로킹은 제어권을 바로 돌려준다. 끝났는지는 직접 물어볼 수도 있고 다 됐다는 알림을 받을 수도 있다. 이를 폴링(Polling)이라고 하며, 비동기 방식의 구현체로 많이 쓰인다.

반면 블로킹 방식은 작업이 끝날 때까지 제어권을 가지지 못해 아무것도 하지 못하고 대기한다. 이는 코드가 직관적이지만, 시스템 자원 효율이 떨어진다.

비동기 논블로킹 모델은 호출 즉시 제어권을 돌려받고, 콜백(Callback)이나 이벤트 루프로 작업 완료를 알림받아 효율을 극대화한다.

추천 꼬리질문

0/300

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

관련 질문

동기/비동기 및 블로킹/논블로킹의 차이는 무엇인가?