Blocking이면 반드시 Sync가 아니고, Non-blocking이면 반드시 aync가 아님.

Untitled

동기 Synchronous

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

비동기 Asynchronous

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

블로킹 Blocking

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

논블로킹 Non-blocking

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

결국 Sync/Async는 호출한 함수에 대해 결과값을 누가(호출한 함수가, 호출된 함수가) 처리하느냐, Blocking/Non-Blocking은 함수를 호출했을때 호출한 함수에게 제어권을 바로 넘겨주느냐 넘겨주지 않느냐에 차이.