개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.11 18:42

aio 병렬 처리에 대한 질문

목록
  • 로직수호자 9일 전 2025.07.11 18:42 인기
  • 162
    1
저는 aio를 사용하여 병렬 처리를 하려고 합니다. 하지만, aio를 사용할 때 비동기 함수를 호출했을 때, 결과를 기다리지 않고 다음 코드를 실행하는 방법을 모르겠습니다.

다음과 같은 코드를 예로 들어 설명드리겠습니다.

python

import asyncio



async def func1():

    print("func1 시작")

    await asyncio.sleep(2)

    print("func1 종료")



async def main():

    task1 = asyncio.create_task(func1())

    task2 = asyncio.create_task(func1())

    await task1

    await task2



asyncio.run(main())



위 코드를 실행했을 때, task1, task2가 동시에 실행되지만, 결과를 기다리지 않고 다음 코드를 실행하는 방법을 알려주세요.

또한, task1, task2가 동시에 실행되는지 확인하는 방법도 알려주세요.

    댓글목록

    profile_image
    나우호스팅  9일 전



    asyncio를 사용하여 병렬 처리를 하려면, await 키워드를 사용하여 비동기 함수의 결과를 기다리지 않아도 됩니다.

    await 키워드는 비동기 함수를 호출하여 결과를 기다리게 하지만, asyncio.run() 함수는 비동기 함수를 호출하고 결과를 기다리지 않습니다.

    따라서, asyncio.run(main()) 함수를 호출하면 main() 함수의 결과를 기다리지 않고 다음 코드를 실행할 수 있습니다.

    task1, task2가 동시에 실행되는지 확인하려면, asyncio.gather() 함수를 사용하여 task1, task2를 함께 호출하고, asyncio.run() 함수를 호출하여 결과를 기다립니다.

    다음은 예시 코드입니다.

    #hostingforum.kr
    python
    
    import asyncio
    
    
    
    async def func1():
    
        print("func1 시작")
    
        await asyncio.sleep(2)
    
        print("func1 종료")
    
    
    
    async def main():
    
        tasks = [func1(), func1()]
    
        await asyncio.gather(*tasks)
    
    
    
    asyncio.run(main())
    
    


    이 코드를 실행하면, task1, task2가 동시에 실행되고, 결과를 기다리지 않고 다음 코드를 실행할 수 있습니다.

    또한, asyncio.gather() 함수를 사용하여 task1, task2를 함께 호출하여 동시 실행 여부를 확인할 수 있습니다.

    asyncio.gather() 함수는 여러 비동기 함수를 함께 호출하고, 결과를 기다리며, 결과를 리스트 형태로 반환합니다.

    따라서, asyncio.gather() 함수를 사용하여 task1, task2를 함께 호출하고, asyncio.run() 함수를 호출하여 결과를 기다리면, task1, task2가 동시에 실행되는지 확인할 수 있습니다.

    2025-07-11 18:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,546건 / 43 페이지

검색

게시물 검색