블로킹(Blocking)과 논블로킹(Non-blocking)
1) 블로킹(Blocking)
- 호출된 함수가 자신의 작업이 모두 끝날 때까지 제어권을 가지고 있어, 호출한 함수가 대기하도록 만듬
2) 논블로킹(Non-blocking)
- 호출된 함수가 바로 return함으로써, 호출한 함수에게 제어권을 넘겨주어 다른 일을 처리할 수 있도록 함
동기식 네트워크와 비동기식 네트워크
1) 동기식(Synchronous) 네트워크
- Request를 보낸 스레드는 Response가 도착하기 전까지 블로킹(Blocking) 됨
(1) 장점
- 요청과 응답의 순서 보장
- 요청에 대한 처리 결과 보장
(2) 단점
- 응답이 지연되게 되면 요청을 보낸 스레드는 무한 대기상태에 빠짐
- 한 요청이 지연되면 전체 성능이슈 발생
2) 비동기식(Asynchronous) 네트워크
- Request를 보낸 스레드는 Response를 기다리지 않고 다른 일을 처리(Non-blocking)
(1) 장점
- 응답을 기다리지 않기 때문에 동기식 네트워크보다 성능 효율이 좋음
(2) 단점
- 순서와 응답을 보장하지 않음
'CS > Network' 카테고리의 다른 글
[네트워크] 웹 크롤링과 웹 스크래핑 (2) | 2020.06.28 |
---|---|
[네트워크] 싱글스레드 서버와 멀티스레드 서버 (0) | 2020.06.28 |
[네트워크] MAC / ARP / RARP (0) | 2020.06.28 |
[네트워크] IP Address (0) | 2020.06.28 |
[네트워크] 프록시(Proxy) (0) | 2020.06.27 |
댓글