Sync

    동기/비동기(Sync/Async), Blocking/Non-Blocking

    시작하기에 앞서, 간단히 기준이 되는 용어를 보겠습니다. Blocking/Non-Blocking : '제어권'을 두고 구분 동기/비동기 : 결과값을 기다리느냐로 구분 1. Blocking VS Non-Blocking : 제어의 관점 요청한 처리되어야하는 작업이 전체 작업 흐름을 막는지 안 막는지? 🚩 Blocking 작업에 대한 제어권이 없다. 즉, 다른 주체에게 작업을 요청하면 결과가 돌아올 때까지 다른 작업을 하지않고 기다려야 한다. A함수가 B함수를 호출하면, 제어권을 B함수에게 넘긴다. B함수가 자신의 함수를 실행하고, A함수는 제어권이 없기 때문에 함수 실행을 잠시 멈춘다. B함수의 실행이 끝나면 자신의 제어권을 호출한 A에게 돌려준다. 🚩 Non-Blocking 작업에 대한 제어권을 그대로 가..