본문 바로가기
카테고리 없음

Blocking, Non-blocking, Sync, Async 의 차이

by 루에 2022. 7. 26.
반응형

블로킹 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에게 물어보는 과정 없이 자기의 일을 하면 된다.

 

자세한건 아래 링크(가장 명확하게 잘 되있는 듯)

https://jh-7.tistory.com/25

반응형

댓글