네트워크
Blocking/Non-blocking & Synchronous/Asynchronous
탁재민
2024. 3. 10. 23:00
Blocking / Non-blocking
- Blocking: 호출된 함수가 완료될 때까지 호출한 함수 실행을 멈춤, 제어권이 호출된 함수에 있음
- Non-blocking: 함수 호출 시 호출된 함수가 즉시 제어권 반환, 호출한 함수는 제어권 가지고 계속 실행
Synchronous / Asynchronous
- Synchronous (동기): 작업 완료 여부 따져 작업들이 순차적으로 실행, 완료 여부 따로 확인
- Asynchronous (비동기): 요청한 작업에 대해 완료 여부를 따지지 않고 서로 독립적으로 실행, 완료 시 콜백 반환
결합된 형태
- Blocking Synchronous: 전통적인 동기적 함수 호출, 호출된 함수가 완료될 때까지 대기
- Non-blocking Synchronous: 호출된 작업은 즉시 반환되지만,폴링을 통해 호출된 함수의 상태를 반복적으로 확인
- Blocking Asynchronous: 완료되기 전까지는 다른 작업으로 넘어가지 않고, 콜백이 호출될 때까지 대기(사용 X)
- Non-blocking Asynchronous: 작업을 시작하고 즉시 반환하여 호출한 함수가 다른 작업을 계속 수행, 완료 시 콜백