코루틴이란 완료까지 시간이 걸리는 작업을 마주하면 그 실행을 멈출 수 있는 함수를 의미한다.
만약 그 길게 시간걸리는 작업이 끝나면 우리의 멈춘 코루틴을 깨워서 코루틴안에 있는 나머지 코드들을 끝낼수 있다.
async를 붙여서 코루틴을 정의하고, awiat를 붙여서 우리의 코루틴을 멈추게함.
- 코루틴을 직접적으로 호출하면 코드가 실행되지 않음. 그냥 코루틴 객체가 반환됨. 이는 추후에 run할 수 있는 객체임.
- 우리가 코루틴을 실행하게 하려면, 무조건 event loop에 태워여함.
- 3.7이전에는 이벤트 루프가 미리 존재하지 않았찌만, 이후부터는 이미 존재함
-async.run하면 됨.
asyncio.run은 여러가지 역할을 함.
1. 새로운 이벤트를 생성
2. 코루틴을 주면 집어넣고 다 끝날때까지 돌림.
3. 메인코루틴이 끝나고 나머지를 정리함
4. 끝나면 셧다운하고 이벤트루프를 닫음.
asyncio.run은 엔트리포인트에 해당한다. (async에서)
이것은 하나의 코루틴을 실행시켜서 다른 모든 면 (어플리케이션에서)을 실행시킨다.
asyncio의 진짜 장점은 길게 걸리는거를 스탑하고 다른걸 돌리게 하는것.
실행을 멈추기 위해서 await를 씀.