CS

Blocking & Non-Blocking, Synchronous & Asynchronous

SeungbeomKim 2022. 11. 28. 17:28

Blocking
Non-blocking

 

 

블로킹

  • blocking -> 어떠한 A 함수 가 B 함수를 호출하면 제어권(함수를 실행할 권리)을 A가 B에게 넘겨주는 작업 방식이다.
  • 제어권을 가진 B는 함수를 실행하고, A는 제어권을 B에게 넘겨줬기 때문에 함수 실행을 멈춘다.
  • 그리고 B의 함수가 종료되면, A에게 다시 제어권을 돌려준다.

논블로킹

  • Non-blocking -> 어떠한 A 함수가 B 함수를 호출해도 제어권을 그대로 자신이 가지고 있는 작업 방식이다.
  • A 함수가 B 함수를 호출해도, 제어권은 A에게 있기 때문에, A의 함수를 멈추지 않고 B의 함수를 실행한다. 

 

 

데이터를 처리하는 방식

동기

  • synchronous programming -> 요청과 결과가 동시에 일어나는 프로그래밍(A, B 노드 사이의 작업 처리 단위를 동시에 맞춤)
  • 결과를 반환하기 전까지 어떠한 작업을 행할 수 없으며 대기해야 하므로 효율성이 떨어지지만, 설계가 비교적 간단하다.

비동기

  • Asynchronous programming -> 요청과 결과가 동시에 일어나지 않는 프로그래밍(A, B 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 무관)
  • 결과를 반환하기 전까지 어떠한 노드에서 작업을 행할 수 있으므로 효율성이 높지만, 설계가 복잡하다.

 

<참고 자료>

https://velog.io/@nittre/%EB%B8%94%EB%A1%9C%ED%82%B9-Vs.-%EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9-%EB%8F%99%EA%B8%B0-Vs.-%EB%B9%84%EB%8F%99%EA%B8%B0

 

블로킹 Vs. 논블로킹, 동기 Vs. 비동기

와 드디어 이해했다 속이 후련~

velog.io

https://velog.io/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC

 

동기, 비동기 처리

데이터를 처리하는 방식인 동기, 비동기 처리에 대해 많은 글이 있지만 정확하게 와닿지가 않았다. 최대한 내가 이해한 방식대로 서술해 보려고 한다. 동기 (Synchronous)는 요청과 동시에 일어난다

velog.io