코루틴 흐름에 관한 질문
269
작성한 질문수 2
안녕하세요 1-3 강의를 듣고 따라하는 중에 의문점이 들어 질문을 남깁니다.
공통 코드
import time
import asyncio
async def delivery(name, mealtime):
print(f'{name}에게 배달 완료')
await asyncio.sleep(mealtime)
print(f'{name}님 식사 완료, {mealtime}시간 소요')
print(f'{name}그릇 수거 완료')
async def main():
task1 = asyncio.create_task(delivery('경민', 1))
task2 = asyncio.create_task(delivery('윤민', 2))
#-----변경할 부분------#
#await task2
#print(1)
#await task1
#--------------------#
if __name__ == '__main__':
start = time.time()
asyncio.run(main())
end = time.time()
print(end-start)질문 1. create_task메서드 실행만 했을 경우 코루틴 함수의 await전까지 실행되는 이유
공통 코드 실행 결과:
>>> 경민에게 배달 완료
>>> 윤민에게 배달 완료
>>> 0.0000510...
개인생각 : create_task는 실행은 하지 않고 선언만 한 것인데 await전까지 왜 실행이 되나,,
질문 2. create_task메서드의 선언 순서 고정으로 출력되는 이유
#-----변경할 부분------#
await task2
#print(1)
await task1
#--------------------#>>> 경민에게 배달 완료
>>> 윤민에게 배달 완료
개인 생각: 윤민에게 먼저 배달을 해야하는 것이 아닌가
질문 3. 다음 결과의 이유
#-----변경할 부분------#
await task2
print(1)
await task1
#--------------------#
>>> 경민 배 완
>>> 윤민 배 완
>>> 경 식 완
>>> 경 그 수거
>>> 윤 식 완
>>> 윤 그 수거
>>> 1
개인 생각: 질문1,2의 경험 없이 생각을 해보면
경민에게 배달하고 1이 출력된 다음에 윤민에게 배달을 해야하는게 아닌가 하는 의문이 듭니다.
답변 0
대규모 크롤링 시 동시 요청 수 제어 방법
0
116
2
AWS LighSail 접근 불가
0
149
1
강의상의 readme와 배포되어 있는 것이 다른 것 같아요
0
113
1
book_scraper.py 에서 import get_secret 관련 질문
0
114
1
ThreadPoolExecutor 중간에 멈추는 법
0
309
1
몽고Db 기초 질문
0
206
1
async await 문법 질문
0
244
1
멀티 스레딩 질문..
0
200
1
교안 제공은 안되나요?
0
232
1
TypeError: field Config is defined without type annotation
0
265
1
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0
1733
1
jinja2templates
0
254
1
몽고DB 설정 관련 질문
0
253
1
비동기 함수를 동기적인 실행으로 만드는 부분 질문입니다
1
327
2
proxy 사용 질문
0
273
1
AWS Lightsail SSL handshake failed 오류 문의드립니다.
0
506
1
동시성과 병렬성
0
334
1
python select linter ? 오류
1
748
2
수업질문
1
356
1
response 객체에서 키값으로 조회 시 KeyError 발생
0
580
1
from config import get_secret 질문
0
393
1
파이썬 코루틴활용 영상 질문
0
286
1
가상환경 설정 질문
0
326
1
pydantic import error
0
1236
2





