[Python] 비동기 프로그래밍
Y
Yerim
- Python

!pip install nest_asyncioimport nest_asyncio
nest_asyncio.apply()import time
def job(number):
print(f"Job {numer} started")
time.sleep(1) # 매우 오래 걸리는 작업, 일반 sleep은 CPU를 쉬게 합니다.
print(f"Job {numer} completed")
job(1)
job(2)
job(3)import asyncio
async def job(number):
print(f"Job {number} started")
await asyncio.sleep(1) # 매우 오래 걸리는 작업
print(f"Job {number} completed")
async def main():
await asyncio.gather(job(1), job(2), job(3)) # await asyncio.wait([job(1), job(2), job(3)])
asyncio.run(main())
print("hello world")# 코랩에서만 사용 가능한 코드
import asyncio
async def job(number):
print(f"Job {number} started")
await asyncio.sleep(1) # 매우 오래 걸리는 작업
print(f"Job {number} completed")
asyncio.run(job(1))
asyncio.run(job(2))
asyncio.run(job(3))# 일반 함수
def job():
print('job')async def job():
print('job')
print(job) # <function job ast ...>
job() # <coroutine object job at ...>, print('job')이 실행되지 않습니다!asyn def main():
return awati job()
main() # <coroutine object main at ...>
print(await main() # None