일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 그레이들
- DP
- 자바
- TypeScript
- Data Structure
- network
- java
- Graph
- 안드로이드
- 프로그래머스
- Redux
- Python
- vscode
- BFS
- react
- DFS
- 리트코드
- Javascript
- git
- Algorithm
- db
- Database
- 백준
- frontend
- LeetCode
- 알고리즘
- 동적 계획법
- 다이나믹 프로그래밍
- CS
- VIM
Archives
- Today
- Total
늘 겸손하게
CS - Network - Blocking/Non-blocking & Synchronous/Asynchronous 본문
Computer Science/Network
CS - Network - Blocking/Non-blocking & Synchronous/Asynchronous
besforyou999 2022. 11. 30. 22:47[ Blocking/Non-blocking ]
블록, 논블록은 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이라고 볼 수 있다.
함수 A, B가 있고, A안에서 B를 호출했다고 가정해보자. 이때 호출한 함수는 A고 호출된 함수를 B라고 할 경우
- Blocking : 함수 B는 작업이 끝날때까지 제어권을 가지고 있는다. A는 B의 작업이 끝날때까지 기다려야 한다.
- Non-blocking : 함수 B는 작업이 끝나지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행 가능
즉, 호출된 함수에서 일을 시작할 때 바로 제어권을 리턴해주면 Non-blocking
할 일을 마치고 리턴해주면 Blocking
[ Synchronous/Asynchronous ]
Asynchronous(비동기)는 호출시 Callback을 전달하여 작업의 완료 여부를 호출한 함수에게 답하게 된다.
Synchronous(동기)는 Callback을 전달하지 않는다.
Synchronous 상황에서 함수 A가 함수 B를 호출했다면 함수 A는 함수 B의 상태가 어떤지 계속 체크한다. Asynchronous 상황에서는 함수B의 상황은 함수B만 신경쓴다.
'Computer Science > Network' 카테고리의 다른 글
CS - Network - 네트워크 토폴로지 (Network Topology) (0) | 2022.12.13 |
---|---|
CS - Network 기초 (0) | 2022.12.12 |
CS - Network - 로드 밸런싱 (Load Balancing) (1) | 2022.09.26 |
CS - Network - TLS/SSL HandShake (0) | 2022.09.26 |
CS - Network - HTTP & HTTPS (1) | 2022.09.26 |