inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

동기 vs 비동기

비동기 함수를 동기적인 실행으로 만드는 부분 질문입니다

308

밑바닥개발자

작성한 질문수 77

1

안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라 [섹션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)

python 동시성 FastAPI

답변 2

0

모진종

start: A

start: B

start: C

end B

end C

end A

time : 3.0121638774871826

코드 좀 추가해봤습니다

 

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