Blocking vs NonBlocking
호출되는 함수가 바로 리턴 되는가?
- yes : NonBlocking - 함수 결과를 기다리지 않고 리턴 후 다른 작업 수행
- no : Blocking - 함수 결과가 나올 때 까지 대기
Synchronous vs Asynchronous
호출되는 함수의 작업 완료를 기다리는가?
- yes : Synchronous
- no : Asynchronous - Callback 으로 받음
Blocking은 Syncronous와 비슷하고 NonBlocking은 Asynchronous와 비슷하다
Blocking vs Synchronous
함수가 리턴을 기다리는 동안 대기큐에 머무는게 필수인가?
- yes : Blocking
- no : Synchronous
NonBlocking vs Asynchronous
함수가 리턴 될 때 결과와 함께 반환 되는가?
- yes : NonBLocking
- no : Asynchronous
조합을 바꾸면 어떻게 동작할까?
NonBlocking-Synchronous
호출되는 함수는 바로 리턴 후 다른 작업을 수행할 수 있게 해줌, but 호출 된 함수의 작업 완료를 기다린다.(완료 되었는지 계속 물어봄)
즉, NonBlocking 함수 호출 후 바로 리턴 받아서 다른 작업을 할 수 있게 되지만, 함수 호출에 의해 수행되는 작업이 완료된 것은 아니며, 호출하는 함수가 호출되는 함수 쪽에 작업 완료 여부를 계속 문의한다.
Blocking-Asynchronous
호출되는 함수는 바로 리턴하지 않고, 호출하는 함수는 작업 완료 여부를 신경쓰지 않는다.
[참조]
https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/
http://asfirstalways.tistory.com/348
'프로그래밍' 카테고리의 다른 글
HTTP/2 (0) | 2019.03.04 |
---|---|
HTTP와 HTTPS의 차이 (0) | 2019.03.04 |
객체지향 5대 원칙 - SOLID (0) | 2019.02.07 |
MVC, MVP, MVVM 패턴 (0) | 2018.10.08 |
circuit breaker (0) | 2017.09.25 |