블로킹
- 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/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC
'CS' 카테고리의 다른 글
[컴퓨터 구조] 컴퓨터의 혁명과 컴퓨터 종류 (0) | 2023.03.27 |
---|---|
[컴퓨터 구조] 컴퓨터 구조를 알아야 하는 이유 (1) | 2023.03.27 |
CS 스터디 4주차 Network & Spring (0) | 2022.10.27 |
CS스터디 3주차 Network & Java (1) | 2022.10.26 |
CS스터디 2주차 Computer Architecture & Java (1) | 2022.09.28 |