동기 작업
- 기존의 작업을 수행하던 중 다른 작업 수행을 요청한다.
- 요청한 작업의 종료 여부를 확인한 후, 종료 시 기존의 작업을 이어서 수행한다.
비동기 작업
- 기존의 작업을 수행하던 중 다른 작업 수행을 요청한다.
- 이때 작업 종료 후 종료 여부를 판단할 동작도 같이 전달한다.
- 요청한 작업의 종료 여부에 상관없이 기존의 작업을 이어서 수행한다.
블로킹 작업
- 기존의 작업을 수행하던 중 필요한 값을 얻기 위해 제어권을 넘겨주어 작업 수행을 요청한다.
- 요청한 작업이 종료되면 결과값을 전달 받아, 기존의 작업을 이어서 수행한다.
논블로킹 작업
- 기존의 작업을 수행하던 중 다른 작업 수행을 요청한 후, 제어권을 바로 돌려 받는다.
- 작업 수행의 결과와는 상관없이 기존의 작업을 그대로 수행한다.
- A 함수는 B 함수의 리턴값에 신경쓰지 않고, 콜백함수를 보낸다. - 비동기
- B 함수의 작업에 관심없음에도 불구하고, A 함수는 B 함수에게 제어권을 넘긴다. - 블로킹