inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình đồng thời Python : Từ thu thập dữ liệu đến phát triển web (feat. FastAPI, async, await)

Đồng bộ vs Bất đồng bộ

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

309

iamcodingcat

77 câu hỏi đã được viết

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

Câu trả lời 2

0

jinjong1983

start: A

start: B

start: C

end B

end C

end A

time : 3.0121638774871826

코드 좀 추가해봤습니다

 

0

jinjong1983

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

135

1

강의상의 readme와 배포되어 있는 것이 다른 것 같아요

0

97

1

book_scraper.py 에서 import get_secret 관련 질문

0

101

1

ThreadPoolExecutor 중간에 멈추는 법

0

292

1

몽고Db 기초 질문

0

196

1

async await 문법 질문

0

237

1

멀티 스레딩 질문..

0

194

1

교안 제공은 안되나요?

0

228

1

TypeError: field Config is defined without type annotation

0

259

1

RuntimeWarning: Enable tracemalloc to get the object allocation traceback

0

1709

1

jinja2templates

0

245

1

몽고DB 설정 관련 질문

0

243

1

proxy 사용 질문

0

264

1

AWS Lightsail SSL handshake failed 오류 문의드립니다.

0

492

1

동시성과 병렬성

0

327

1

python select linter ? 오류

1

740

2

수업질문

1

353

1

response 객체에서 키값으로 조회 시 KeyError 발생

0

569

1

from config import get_secret 질문

0

387

1

파이썬 코루틴활용 영상 질문

0

281

1

가상환경 설정 질문

0

317

1

pydantic import error

0

1226

2

동시성 프로그래밍으로 이미지 다운로더 개발

0

312

1