[CS-네트워크]Blocking/Non-blocking & Synchronous/Asynchronous

지영·2023년 7월 17일
0

CS

목록 보기
42/77

각 단어의 의미

1. Blocking

  • 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것

2. NonBlocking

  • 다른 주체의 작업에 관련없이 자신의 작업을 하는 것

3. Synchronous

  • 요청이 들어온 순서대로 하나씩 처리하는 것

4. Asynchronous

  • 하나의 요청이 끝나기도 전에, 다른 요청을 동시에 처리할 수 있는 것

📜 자세히 알아보기

Blocking & Non-blocking

호출된 함수호출한 함수에게 제어권을 건네주는 유무의 차이

상황) 함수 A, B가 있다. A안에서 B를 호출했다고 가정한다. 즉, 호출한 함수는 A이고 호출된 함수는 B이다. 현재 B가 호출되면서 B의 일을 진행해야 하는 상황이다. (즉 제어권이 B에게 주어진 상황)

  1. Blocking
    함수 B가 할 일을 다 마칠 때까지 제어권을 갖는다. A는 B가 다 마칠 때까지 기다려야 한다.
  1. Non-blocking
    함수 B가 할 일을 다 마치지 않았더라도 A에게 제어권을 바로 넘겨준다. A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행할 수 있다.

Synchronous & Asynchronous

일을 수행 중인 동시성에 주목해야 함

상황) 함수 A, B가 있다. A안에서 B를 호출했다고 가정한다. 즉, 호출한 함수는 A이고 호출된 함수는 B이다.

  1. Synchronous
    함수 A는 함수 B가 일을 하는 중에 기다면서, B의 상태가 어떤지 계속 체크한다.

  2. Asynchronous
    함수 B의 수행 상태를 A가 신경쓰지 않고 B 혼자 직접 신경쓰면서 처리한다. (*Callback)

+) ✔ Callback이란?

  • 코드를 통해 명시적으로 호출하는 함수가 아니라, 함수를 등록한 다음 어떤 이벤트가 발생했거나 특ㅈㅇ 시점에 도달했을 때 시스템에서 호출하는 함수를 말한다. 즉, 다른 함수가 실행을 끝낸 뒤 실행되는 함수(나중에 호출되는 함수)를 말한다.

📍 총정리 그림

profile
꾸준함의 힘을 아는 개발자가 목표입니다 📍

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기