한눈에 바로보기
블로킹과 논블로킹은 A함수가 B함수를 호출했을 때, 제어권을 어떻게 처리하느냐에 따라 달라진다.
만약 A가 B함수를 호출하고 현재 B가 호출되면서 B는 자신의 일을 진행해야 한다.(제어권은 B)
동기/비동기는 일을 수행 중인 동시성에 주목한다.
즉, 호출되는 함수의 작업 완료 여부를 신경쓰는지의 여부 차이다.
간단하게 호출된 함수를 호출한 함수가 신경쓰는지, 아님 스스로 신경쓰는지이다.
I/O 작업이 진행되는 동안 유저 프로세스가 자신의 작업을 중단한채, I/O가 끝날때까지 대기하는 방식
A함수가 I/O작업을 호출했을 떄 I/O작업이 완료될 때까지 A함수의 작업을 중단하지 않고 I/O에 대해 즉시 리턴하고, A함수가 이어서 다른 일을 수행할 수 있도록 하는 방식
참조 : https://gyoogle.dev/blog/computer-science/network/Blocking,Non-blocking%20&%20Synchronous,Asynchronous.html, https://velog.io/@nittre/%EB%B8%94%EB%A1%9C%ED%82%B9-Vs.-%EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9-%EB%8F%99%EA%B8%B0-Vs.-%EB%B9%84%EB%8F%99%EA%B8%B0