PHpullh
학습 라이브러리/Python/asyncio 이벤트 루프

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() 을 사용하세요.