Android/Interview Question

Blocking, NonBlocking, Sync, Async 이해하기 좋은 아티클

Nanamare 2022. 3. 27. 22:06
728x90

https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/#about

 

Blocking-NonBlocking-Synchronous-Asynchronous

꽤 자주 접하는 용어다. 특히나 요즘들어 더 자주 접하게 되는데, 얼추 알고는 있고 알고 있는게 틀린 것도 아니지만, 막상 명확하게 구분해서 설명하라면 또 만만치가 않은.. 그래서 찾아보면

homoefficio.github.io

 

본문의 정리를 인용하면,

  • Blocking/NonBlocking은 호출되는 함수가 바로 리턴하느냐 마느냐가 관심사
    • 바로 리턴하지 않으면 Blocking
    • 바로 리턴하면 NonBlocking
  • Synchronous/Asynchronous는 호출되는 함수의 작업 완료 여부를 누가 신경쓰냐가 관심사
    • 호출되는 함수의 작업 완료를 호출한 함수가 신경쓰면 Synchronous
    • 호출되는 함수의 작업 완료를 호출된 함수가 신경쓰면 Asynchronous
  • 성능과 자원의 효율적 사용 관점에서 가장 유리한 모델은 Async-NonBlocking 모델이다.

 

안드로이드의 특성상 대부분이 NonBlocking 으로 동작하고, 파일 읽기 쓰기 같은 바로 리턴할 수 없는 작업들은 호출되는 함수의 작업완료를 호출된 함수가 신경쓰는 Asynchronous 가 많습니다.

 

728x90