# Synchronous Way download(url1) # takes 5 sec. download(url2) # takes 5 sec. # Total time: 10 sec. # Asynchronous Way await asyncio.gather( async_download(url1), # takes 5 sec. async_download(url2) # takes 5 sec. ) # Total time: 5 sec. (plus asyncio overhead)동기 코드를 비동기로 캐스팅하는 것은 아무런 목적도 없으며 오류로 이어질 수 있습니다. 성능 저하.장기 실행 동기 작업에 대한 특별 고려 사항사용 시 고려해야 할 중요한 측면 asyncio는 비동기 생태계에 대한 장기 실행 동기 작업의 영향입니다. 실행하는 데 오랜 시간(예: 50ms 이상)이 걸리는 동기 작업은 실행 중인 모든 비동기 작업을 잠재적으로 정지시킬 수 있습니다.
# Synchronous Code That Should Remain Synchronous def parse(html): # This function does not involve any I/O operations. links = extract_links_from_html(html) return links이러한 정지를 방지하려면 이러한 장기 실행 작업을 별도의 프로세스에서 실행하거나 비동기 컨텍스트 내에서 I/O 바인딩된 작업에 스레드 풀을 사용합니다.결론적으로 Python 3.5의 Wait는 다음 작업을 처리할 때 신중하게 사용해야 합니다. 동시성의 이점을 활용하기 위한 I/O 작업입니다. 그러나 잠재적인 성능 저하 및 병목 현상을 방지하려면 비동기 생태계 내에서 동기 코드 및 장기 실행 작업을 수행하지 않는 것이 좋습니다. 이러한 원칙을 주의 깊게 고려하면 Python 3.5의 비동기 기능을 효과적으로 활용할 수 있습니다.
위 내용은 Python 3.5의 `await`를 언제 사용해야 하며 언제 사용하지 않아야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!