프로세스와 스레드, 코루틴의 Context Switching의 차이
·
CS
동시성 프로그래밍(Concurrency Programming)을 다루다 보면 Context Switching(문맥 교환)이라는 용어를 자주 접하게 된다. OS는 하나의 CPU 코어에서 여러 작업을 동시에 처리하는 것처럼 보이기 위해 실행 중인 작업의 상태를 저장하고 다른 작업으로 전환하는 과정을 반복하는데 이때 발생하는 핵심 메커니즘이 바로 Context Switching이다. 특히 현대 안드로이드 개발 환경에서는 빼놓을 수 없는 코루틴이 “경량 스레드”로 불릴 수 있는 이유 또한 전통적인 스레드의 Context Switching 비용을 어떻게 다루는지와 깊은 관련이 있다. 이 글에서는 Context Switching이 무엇인지 그리고 스레드와 코루틴의 전환 방식이 어떻게 다른지를 중심으로 살펴보려 ..