Skip to content

Latest commit

 

History

History

Chap04

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Chapter 4

코루틴

서브루틴의 개념

코루틴에 대해 이해하기 위해, 서브루틴과의 비교를 해 줄 필요가 있다.
서브루틴 : 반복되는 기능을 모아 별도로 묶어 메모리에 저장한 것
서브루틴의 구현체 : 함수/메소드
서브루틴의 동작 : 호출에 의해 진입 -> 리턴에 의해 반환

코루틴의 개념

동일점 : 기능을 별도의 메모리에 저장한 것
다른 점 :

  1. 진입 -> 반환을 반복하여 가능하며, 반환 전 상태를 기억함
  2. 반환이 되고 나서는 일시정지가 가능
  3. 메인루틴에 종속되지 않고 대등한 관계이다

코루틴의 용도

일시정지가 자유로우므로, 협력형 멀티테스킹을 위해 사용될 수 있다

python에서 Generator와 Coroutine의 차이

공통점 : 함수 내에 yield 키워드를 포함하여 구현된다
차이점 :
Generator : yield를 반환의 목적으로만 사용
Coroutine : yield를 입력과 반환의 목적으로 사용

python에서 코루틴의 구현 및 동작

구현

  1. while True : 안에 yield를 포함한 코루틴을 선언한다

동작

  1. 해당 코루틴을 변수에 할당한다
  2. 반환 : next(코루틴 변수) 를 통해 코루틴 결과값을 반환받는다.
    next(코루틴 변수)는 한번 호출될 때매다 코루틴의 다음 yield까지 호출한 후 대기한다.
  3. 진입 : 코루틴변수.send(값) 을 통해 진입한다. send는