비동기 함수를 동기적인 실행으로 만드는 부분 질문입니다
308
작성한 질문수 77
안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라 [섹션1 - 동기 vs 비동기] 강의 내용 중 "비동기 함수로 정의된 것들을 동기적인 실행으로 만드는 부분"을 설명해주셨는데요!
예를 들어, 수업 내용에서 언급된 아래와 같은 코드일 때입니다.
import asyncio
async def delivery(name, mealtime):
print("start:", name)
await asyncio.sleep(mealtime)
print("end")
async def main():
await delivery('A', 10)
await delivery('B', 5)
await delivery('C', 3)그러면 위 코드를 async def가 아닌 일반적인 동기 함수 def 로 정의해서 아래처럼 동기적으로 프로그래밍한 것이랑 성능적인 차이가 있나요? 비동기 함수로 정의하고 굳이 동기적인 프로그래밍을 작성하는 경우가 예시로 뭐가 있으려나요..? 단순히 생각했을 때 어차피 동기적인 프로그래밍으로 작성할 것이라면 애초에 동기함수로 작성하는 게 코드를 읽는 다른 사람들에게도 좀 더 헷갈리지 않게 하는 게 아닐까..싶은데 궁금합니다!
import time
def delivery(name, mealtime):
print("start:", name)
time.sleep(mealtime)
print("end")
async def main():
delivery('A', 10)
delivery('B', 5)
delivery('C', 3)
답변 2
0
async def delivery(name, mealtime):
print("start:", name)
await asyncio.sleep(mealtime)
print("end", name)
async def main():
start_time = time.time()
await asyncio.gather(delivery('A', 3),
delivery('B', 1),
delivery('C', 2))
print(f"time :", time.time()-start_time)
asyncio.run(main())
대규모 크롤링 시 동시 요청 수 제어 방법
0
94
2
AWS LighSail 접근 불가
0
134
1
강의상의 readme와 배포되어 있는 것이 다른 것 같아요
0
96
1
book_scraper.py 에서 import get_secret 관련 질문
0
100
1
ThreadPoolExecutor 중간에 멈추는 법
0
291
1
몽고Db 기초 질문
0
195
1
async await 문법 질문
0
237
1
멀티 스레딩 질문..
0
193
1
교안 제공은 안되나요?
0
227
1
TypeError: field Config is defined without type annotation
0
258
1
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0
1709
1
jinja2templates
0
244
1
몽고DB 설정 관련 질문
0
242
1
proxy 사용 질문
0
261
1
AWS Lightsail SSL handshake failed 오류 문의드립니다.
0
491
1
동시성과 병렬성
0
326
1
python select linter ? 오류
1
739
2
수업질문
1
352
1
response 객체에서 키값으로 조회 시 KeyError 발생
0
568
1
from config import get_secret 질문
0
386
1
파이썬 코루틴활용 영상 질문
0
279
1
가상환경 설정 질문
0
316
1
pydantic import error
0
1225
2
동시성 프로그래밍으로 이미지 다운로더 개발
0
311
1





