CS 공부 - 네트워크

[Network]블로킹, 논블로킹, 동기, 비동기

Nuri-KSLV-II 2023. 2. 2. 11:23

블로킹/논블로킹

- 블로킹/논블로킹은 호출된 함수가 호출한 함수에게 제어권을 건네주느냐 아니냐의 차이다

- 함수 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)

 

그림 요약

출처 homoefficio, http://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/

 

참고

gyoogle, 신입 개발자 전공 지식 & 기술 면접 백과사전

https://camo.githubusercontent.com/b7b28ae739c50d5ed8a4594f52f24e671aeeae234befd0991e5230561ba303bf/68747470733a2f2f696d67312e6461756d63646e2e6e65742f7468756d622f523132383078302f3f73636f64653d6d746973746f72793226666e616d653d6874747073253341253246253246626c6f672e6b616b616f63646e2e6e6574253246646e25324664613530597a2532466274713044736a65345aa562532466c47653848386e5a676442646746766f3749637a5330253246696d672e706e67

 

'CS 공부 - 네트워크' 카테고리의 다른 글

3way 핸드쉐이크/4way 핸드쉐이크  (0) 2023.03.01
WS vs WAS  (0) 2023.02.23