서브루틴(Subroutine) vs 코루틴(Coroutine)
Source
Evernote/Technote scraps/서브루틴(subroutine) vs 코루틴(co-routine).md
Summary
서브루틴은 부모-자식 주종 관계 하에서 순차적으로 실행되며, 종료 시 컨텍스트가 초기화되어 상태 유지가 불가능합니다. 반면 코루틴은 주종 관계 없이 병렬적으로 진행되며, 실행 중단 시 컨텍스트를 유지하므로 이후 중단된 지점부터 재개할 수 있습니다. 이는 게임과 같이 여러 엔티티가 독립적인 상태를 유지해야 하는 병렬 처리 문제에 적합합니다.
Key Points
- 서브루틴: 부모 호출에 의한 순차적 실행, 종료 시 컨텍스트 소실
- 코루틴: 주종 관계 없는 병렬 실행, 컨텍스트 유지 및 중단 지점 재개 가능
- 적용 사례: 개별 플레이어 상태 유지가 필요한 게임 등 병렬 처리 문제 해결