-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
await asyncio.sleep() 의 정확한 실행 과정이 궁금합니다
21.12.22 20:58 작성 조회수 1.27k
0
await asyncio.sleep() 코드가 어떻게 실행되는지에 대한 설명을 찾을 수가 없어 질문 드립니다
import asyncio
async def main():
print('tim')
task = asyncio.create_task(foo('text'))
await asyncio.sleep(1)
print('finished')
async def foo(text):
print(text)
await asyncio.sleep(5)
asyncio.run(main())
위의 코드를 실행한 결과,
tim
text
그리고 1초 후에 finished가 출력되었습니다.
stackoverflow에서 다음과 같은 설명을 찾을 수가 있었습니다.
"But when you call await asyncio.sleep()
, it will ask the event loop to run something else while your await statement finishes its execution."
그럼 위의 코드에서는
task = asyncio.create_task(foo('text'))
를 통해 태스크를 예약하고 그 후에
await asyncio.sleep(0.1)
asyncio.sleep 구문을 만나게 되는데,
왜
async def foo(text):
print(text)
await asyncio.sleep(5)
속의 asyncio.sleep(5)는 코드의 진행에 어떠한 영향도 주지 못하는지 잘 이해가 가지 않습니다
await과 asyncio.sleep()의 기능과 진행 방향에 대한 설명을 부탁드리고 싶습니다
답변을 작성해보세요.
0
좋은사람
지식공유자2021.12.23
안녕하세요.
좋은 질문이예요.
쉽게 생각해서 asyncio.sleep() 호출 시 위 task가 실행된다고 보시면 됩니다.
마지막에 sleep(5)구문은 다른 태스크가 없으므로, 삭제 하셔도 결과는 똑같습니다.
tim
text
1초 뒤
finished
답변 1