[Android] 코루틴 Blocking와 Non-Blocking의 차이
2024. 9. 25. 03:52
[# 2]…My DevelopStory
오늘 면접을 보았는데 문득 blocking과 non-blocking의 차이점을 설명해보라는 질문을 받았다.대충 뭔지는 알고 있었지만 개똥같은 대답을 했기에 기록해본다. Blocking코루틴의 블로킹은 현재 실행 중인 스레드를 중단시키고 작업이 완료될 때까지 대기하는 방식즉, 블로킹이 호출이 발생하면 해당 스레드가 멈춰서 다른 작업을 수행하지 않고 작업이 완료될 때 까지 기다린다.다른 작업을 수행하지 않지만 여전히 시스템 리소스를 소비하여 스레드가 낭비될 수 있으며, 네트워크 요청을 UI 스레드에서 블로킹 방식으로 처리하면, 네트워크 응답을 받을 때 까지 앱이 멈춘 것 처럼 보일 수 있다. Non-Blocking작업을 대기하는 동안 스레드를 멈추지 않고, 다른 작업을 계속 수행할 수 있도록 하는 방식이다...