더북(TheBook)

저녁 식사로 동기와 비동기 프로그래밍 비교하기

저녁 식사를 준비하는 과정을 동기 프로그래밍과 비동기 프로그래밍 절차와 비교하면 다음과 같습니다.

 

동기 프로그래밍(스레드 차단)

1.   밥을 짓습니다. 밥을 다 지을 때까지 보면서 기다립니다.

2.   국을 끓입니다. 국이 완전히 끓을 때까지 보면서 기다립니다.

3.   달걀 프라이를 합니다. 달걀이 다 익을 때까지 보면서 기다립니다.

 

비동기 프로그래밍(동기 프로그래밍 포함)

1.   밥을 짓습니다. 밥을 다 지을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.

2.   국을 끓입니다. 국이 완전히 끓을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.

3.   달걀 프라이를 합니다. 달걀이 다 익을 때까지 다른 일을 하면서(TV 등을 보면서) 기다립니다.

 

비동기 프로그래밍(동시 작업 시작)

밥을 짓기 시작합니다. 국을 끓이기 시작합니다. 달걀 프라이를 하기 시작합니다. 다른 일을 하면서(TV 등을 보면서) 모든 작업이 다 끝날 때까지 기다립니다.

 

동기 프로그래밍과 비동기 프로그래밍 실행 시간

일반적으로 동기 프로그래밍은 (밥 + 국 + 달걀) 시간이 걸리고, 동기 프로그래밍이 포함된 비동기 프로그래밍은 동기 프로그래밍과 동일한 시간이 걸립니다. 순수 비동기 프로그래밍은 (밥 + 국 + 달걀) 중에서 가장 오래 걸리는 시간과 비슷합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.