PYTHON · 비동기
asyncio 이벤트 루프
asyncio 이벤트 루프의 기본 개념과 실행 방법을 이해합니다.
비동기중급asyncio이벤트 루프event loopgather
핵심 설명
asyncio 이벤트 루프의 기본 개념과 실행 방법을 이해합니다.
Python code
import asyncio
async def say(text: str, delay: float):
await asyncio.sleep(delay)
print(f"[{delay}s] {text}")
return text
async def main():
# 순차 실행: 3초
await say("첫 번째", 1)
await say("두 번째", 2)
# 병렬 실행: 2초 (가장 긴 시간)
results = await asyncio.gather(
say("동시-A", 2),
say("동시-B", 1),
say("동시-C", 1.5),
)
print(f"결과: {results}")
# 실행
asyncio.run(main())
# 이벤트 루프 직접 제어 (드물게 필요)
# loop = asyncio.get_event_loop()
# loop.run_until_complete(main())학습 팁
asyncio.run()은 Python 3.7+에서 이벤트 루프를 자동으로 생성하고 정리합니다. 대부분의 경우 이것만으로 충분합니다.
주의할 점
이미 실행 중인 이벤트 루프 안에서 asyncio.run()을 호출하면 에러가 발생합니다. Jupyter에서는 await main()을 사용하세요.
자주 묻는 질문
asyncio 이벤트 루프란 무엇인가요?
asyncio 이벤트 루프의 기본 개념과 실행 방법을 이해합니다.
asyncio 이벤트 루프 학습 시 주의할 점은 무엇인가요?
이미 실행 중인 이벤트 루프 안에서 asyncio.run() 을 호출하면 에러가 발생합니다. Jupyter에서는 await main() 을 사용하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.