동기(Synchronous) 비동기(Asynchronous)

먼저 동기/비동기는 Blocking/Non-Blocking과 다르다.

Blocking/Non-Blocking는 제어권이 어디에 있느냐에 대한 관점이다. 작업을 시킨 주체에게 제어권이 있는지 혹은 작업을 처리하는 주체에게 제어권이 있는 지에 대한 것이다.

<aside> 💡 동기/비동기는 시간 관점, Blocking/Non-Blocking은 제어권 관점에서 생각!

</aside>

동기(Synchronous)

두 개 이상의 작업들이 서로의 작업 시작/종료 시간을 맞추어 동시에 일어나게 하는 것이다.

따라서 데이터를 주고받는 '순서'가 중요할 때 사용된다. 그리고 요청한 작업만 처리하면 되기 때문에 전체적인 수행 속도는 빠를 수 있다. 하지만 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있다.

Untitled

Untitled