택시짱의 개발 노트

python 코루틴이란? 본문

python

python 코루틴이란?

택시짱 2022. 3. 23. 22:51

시작전에

메인 루틴과 서브 루틴이란 ?

  • 메인 루틴에서 서브 루틴을 호출하면 서브 루틴의 코드를 실행 한 뒤 다시 메인 루틴으로 돌아와 남은 작업을 진행한다.
  • 서브 루틴의 작업이 끝나게되면 서브 루틴의 내용은 모두 사라진다.
  • 서브 루틴은 메인 루틴안에 속하기 때문에 종속된 관계를 가진다.
def mul(a, b):
    # mul 함수가 끝나면 변수와 계산식은 사라진다
    c = a * b 
    print(f'{c} - mul 함수')
		return c

def main():
    # mul 함수가 끝나면 다시 calc 함수로 돌아온다
    result = mul(1, 4) 
    print(f'{result} - calc 함수')

main()

>>> 4 - mul 함수
>>> 4 - calc 함수
# main가 main 루틴(main routine)이면 mul은 main의 서브 루틴(sub routine)이다.

메인 루틴과 서브 루틴의 동작 과정

 

코루틴이란( coroutin )?

  • 코루틴은 cooperative routine을 의미한다.
  • 코루틴 함수가 종료되지 않은 상태에서 메인 루틴의 코드를 실행한 뒤 다시 돌아와 코루틴의 코드를 실행 한다
  • 코루틴이 종료되지 않았기 때문에 코루틴의 내용은 사라지지 않고 계속 유지 된다.
  • 일반 함수를 호출하면 한 번만 실행이 가능하지만 코루틴은 코드를 여러 번 실행 가능하다.
  • 함수의 코드를 실행하는 지점을 진입점(entry point)이라고 하는데, 코루틴은 진입점이 여러 개인 함수이다.

메인 루틴과 코루틴의 동작 과정

 

 

참고 - https://www.youtube.com/watch?v=-ffBU0nj8b0&t=2s

반응형
Comments