-
CS : DB : Block vs Non-Block, Sync vs AsyncComputer Science/DB 2021. 4. 13. 19:04728x90
Block vs Non-Block vs Sync vs Async
** 이해를 돕기 위해 다음과 같이 의미를 정의한다.
>> 제어권 : 행동할 수 있는 권한
>> 결과값 : 함수의 리턴값
1. Block vs Non-Block
- '제어권'에 대해 통제하는 방법의 차이라고 할 수 있다.
- function A가 function B를 호출하는 상황이라고 할 때,
- Block : A가 가지고 있던 제어권을 B에게 넘겨주고, B가 모든 작업을 마무리 한 후 A에게 제어권을 넘겨준다.
- Non-Block : A가 가지고 있던 제어권을 B에게 넘겨주고, B는 작업을 계속 이어가지만 제어권은 A에게 넘겨준다.
2. Sync vs Async
- '결과값'에 대해 반환 여부의 차이라고 할 수 있다.
- 즉 system call이 즉시 return 될 때, 데이터의 유무의 차이이다.
- function A와 function B가 있다고 할 때,
-
- Sync : A의 종료와 B의 시작을 일치시킨다던지, 제어권의 반납과 결과값의 리턴을 일치시키는 것
- Async : A의 종료와 B의 시작이 일치하지 않는다던지, 제어권의 반납과 결과값의 리턴이 일치하지 않는 것
3.
Block and Sync와 Non-Block and Async는 개념적으로 이해하기 쉽다.
4.
Block/Non-Block, Sync/Async는 '어느 것이 관심사인가'의 차이라고 할 수 있다.
5.
Block과 Non-Block의 관심사는, '호출되는 함수가 바로 제어권을 전달하는가?'이다.
6.
Sync와 Async의 관심사는, '호출되는 함수가 완료되었는가?'이다.
728x90'Computer Science > DB' 카테고리의 다른 글
CS :: DB :: 효율적인 SQL 쿼리 작성 방법 (0) 2021.06.23 CS : DB : RDBMS vs NoSQL (0) 2021.04.20 CS : DB : paging, no offset, covering index (0) 2021.04.13 CS : DB : 트랜잭션과 격리 수준 (0) 2021.04.13 Question : DB (0) 2021.04.06