🌀Co-routine

(co - 협동) + (routine)

사전적인 해석으로 코루틴은 협동 루틴이라는 의미를 가지고 있습니다.

그런데 루틴이란 뭘까요?

소스 파일 분야에서 루틴이란 작업을 정의한 집합을 의미합니다.

C언어에서는 작업을 정의한 명령어의 집합을 함수로 표현해, 루틴을 함수로 보기도 합니다.

다만 루틴은 한개의 함수만을 의미하는 것은 아니고 여러개의 함수로 루틴을 만들기도 합니다.

여기서 주된 흐름에 해당하는 루틴을 메인루틴(Main Routine), 메인루틴이 호출하는 루틴을

**서브루틴(Sub Routine)**이라고 합니다.

흐름의 예시)

예시로 C언어의 메인함수, 그리고 메인함수에서 호출되는 함수를 생각할 수 있습니다.

예시로 C언어의 메인함수, 그리고 메인함수에서 호출되는 함수를 생각할 수 있습니다.

그런데 여기 문제점이 있습니다.

플레이어가 포션을 먹으면 다시 먹기까지 쿨타임을 주고 싶은데,

쿨타임을 카운트해주는 서브루틴을 실행하면 그동안 다른 작업들을 일체 수행할 수 없는 문제

발생합니다.