- A,B 함수가 있고, A가 B를 호출했다고 했을 때
- Async는 B의 수행 결과나 종료 상태를 A가 신경쓰고 있다.
- Blocking은 호출된 함수가 호출한 함수에게 아예 제어권을 건네준다.

Blocking / Non-Blocking
- 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 구분
- Blocking / Non-Blocking : 제어권을 안넘기는지 / 넘기는지
Sync / Async
- Sync와 Async는 결과를 돌려주었을 때 순서와 결과에 관심이 있는지 없는지로 판단한다
- Sync / Async: 결과를 돌려줄 때 결과와 순서에 관심이 있는지 / 없는지
- Sync + Blocking
- 호출 후 일이 끝날때까지 대기
- Async + Non-Blocking
- 호출 후, 대기하지 않고 다른 일 수행
- Sync + Non-Blocking
- 호출한 함수(A)가 다른 작업을 수행할 수 있었음에도 불구하고 여전히 호출된 함수(B)의 결과에만 신경쓰기에 제 할 일을 못하게 되는 형태가 된다!

- Async + Blocking
- 호출한 함수(A)는 호출되는 함수(B)의 작업 결과에 관심이 없음에도 불구하고 호출되는 함수(B)의 결과를 기다리고 있어야 하는 형태다.

Share article