Blocking,Non-blocking & Synchronous,Asynchronous

Onni·2022년 2월 17일
0

📌 정의

✅ 블로킹 Blocking

A 함수가 B 함수를 호출 할 때, B 함수가 자신의 작업이 종료되기 전까지 A 함수에게 제어권을 돌려주지 않는 것

✅ 논블로킹 Non-blocking

A 함수가 B 함수를 호출 할 때, B 함수가 제어권을 바로 A 함수에게 넘겨주면서, A 함수가 다른 일을 할 수 있도록 하는 것.

✅ 동기 Synchronous

A 함수가 B 함수를 호출 할 때, B 함수의 결과를 A 함수가 처리하는 것.

✅ 비동기 Asynchronous

A 함수가 B 함수를 호출 할 때, B 함수의 결과를 B 함수가 처리하는 것. (callback)

📌 모델

✅ Sync-Nonblocking 모델


B 함수가 바로 제어권을 돌려주기에 A 함수는 다른 작업을 수행할 수 있지만,
언제 종료되는지 알 수 없는 B 함수의 종료를 A 함수가 처리해야 한다.
A 함수가 직접 결과를 처리해야하는 상황이기에 B 함수의 종료를 반복적으로 물어봐야 하는 경우이다.

✅ Async-Blocking 모델


그림만 봐도 알 수 있듯 굉장히 비효율적으로 보이는 모델

🧩 Reference

profile
꿈꿈

0개의 댓글