블로킹/논블로킹
- 블로킹/논블로킹은 호출된 함수가 호출한 함수에게 제어권을 건네주느냐 아니냐의 차이다
- 함수 A,B가 있고, A안에서 B를 호출했다고 가정(제어권은 B가 있음)
- Blocking : 제어권을 넘겨주지 않아서, 호출한 A는 B가 끝날 때까지 기다려야함
- Non-blocking : 함수 B가 할 일을 마치지 않았어도 A에게 제어권을 바로 넘김, A는 B를 기다리며 다른 일 가능
동기/비동기
- 동기/비동기는 일을 수행 중인 동시성이 중요
- 위와 같이 가정 시, 함수 A와 B가 있을때, B의 수행 결과나 종료상태를 A가 신경쓰고 있느냐 아니냐의 차이
- 비동기는 callback이 오기 전까지 호출한 함수는 신경쓰지 않고 다른 일 가능
- 동기, Synchronous : 함수 A는 함수 B가 일을 하는 중에 기다리면서, 현재 상태가 어떤지 계속 체크
- 비동기, Asynchronous : 함수 B의 수행 상태를 B혼자 직접 신경쓰면서 처리(Callback)
그림 요약
참고
gyoogle, 신입 개발자 전공 지식 & 기술 면접 백과사전
'CS 공부 - 네트워크' 카테고리의 다른 글
3way 핸드쉐이크/4way 핸드쉐이크 (0) | 2023.03.01 |
---|---|
WS vs WAS (0) | 2023.02.23 |