저녁 식사로 동기와 비동기 프로그래밍 비교하기
저녁 식사를 준비하는 과정을 동기 프로그래밍과 비동기 프로그래밍 절차와 비교하면 다음과 같습니다.
동기 프로그래밍(스레드 차단)
1. 밥을 짓습니다. 밥을 다 지을 때까지 보면서 기다립니다.
2. 국을 끓입니다. 국이 완전히 끓을 때까지 보면서 기다립니다.
3. 달걀 프라이를 합니다. 달걀이 다 익을 때까지 보면서 기다립니다.
비동기 프로그래밍(동기 프로그래밍 포함)
1. 밥을 짓습니다. 밥을 다 지을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.
2. 국을 끓입니다. 국이 완전히 끓을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.
3. 달걀 프라이를 합니다. 달걀이 다 익을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.
비동기 프로그래밍(동시 작업 시작)
밥을 짓기 시작합니다. 국을 끓이기 시작합니다. 달걀 프라이를 하기 시작합니다. 다른 일을 하면서(TV 등을 보면서) 모든 작업이 다 끝날 때까지 기다립니다.
동기 프로그래밍과 비동기 프로그래밍 실행 시간
일반적으로 동기 프로그래밍은 (밥 + 국 + 달걀) 시간이 걸리고, 동기 프로그래밍이 포함된 비동기 프로그래밍은 동기 프로그래밍과 동일한 시간이 걸립니다. 순수 비동기 프로그래밍은 (밥 + 국 + 달걀) 중에서 가장 오래 걸리는 시간과 비슷합니다.