반응형
블로킹 Blocking
A 함수가 B 함수를 호출 할 때, B 함수가 자신의 작업이 종료되기 전까지 A 함수에게 제어권을 돌려주지 않는 것
논블로킹 Non-blocking
A 함수가 B 함수를 호출 할 때, B 함수가 제어권을 바로 A 함수에게 넘겨주면서, A 함수가 다른 일을 할 수 있도록 하는 것.
동기 Synchronous
A 함수가 B 함수를 호출 할 때, B 함수의 결과를 A 함수가 처리하는 것.
비동기 Asynchronous
A 함수가 B 함수를 호출 할 때, B 함수의 결과를 B 함수가 처리하는 것. (callback)
가장 헷갈릴만한, 논블로킹인데 동기/비동기 케이스의 경우는 A는 B가 처리하는 동안 본인의 작업을 수행할 수 있다는 점은 같지만 동기에서는 B함수를 A가 처리해야 하므로 B에게 주기적으로 다 수행했는지 여부를 물어야 하고, 비동기는 B가 처리하므로 A는 B에게 물어보는 과정 없이 자기의 일을 하면 된다.
자세한건 아래 링크(가장 명확하게 잘 되있는 듯)
반응형
댓글