-
동기(sync)/비동기(async), 블로킹(blocking)/논블로킹(non-blocking) 관심사의 차이Interview 2023. 3. 23. 09:18반응형
동기/비동기, 블로킹/논블로킹의 차이
- 동작은 비슷하지만 관심사가 다르다
Blocking / Non-Blocking
- 관심사: 호출되는 함수가 바로 리턴하느냐 마느냐
- Blocking: 호출된 함수가 자신의 작업을 모두 마칠때 까지 제어권을 넘겨주지 않고 대기하게 만듦
- Non-Blocking: 호출된 함수가 호출한 함수에게 바로 제어권을 넘겨주고 호출한 함수가 다른 일을 할 수 있게 함
Synchronous / Asynchronous
- 관심사: 호출되는 함수의 작업 완료 여부를 누가 신경 쓰느냐
- Synchronous: 호출 하는 함수가 호출되는 함수의 완료 여부를 신경씀
- Asynchronous: 호출하는 함수가 작업 완료 여부를 신경쓰지 않고, 호출받는 함수에게 callback 전달.
조합
- Blocking, Synchronous: 함수 호출 후 다른일을 하지 못하고 대기
- Non-Blocking, Asynchronous: 함수 호출 후 다른 일을 수행 할 수 있다.
- Non-Blocking, Synchronous: 함수 호출 후 다른 작업을 할 수 있지만 작업 완료 여부를 계속 신경쓴다.
- Blocking, Asynchronous: 함수 호출 후 다른 일을 하지 못하고 대기
참고
반응형