"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python 3.5의 Asyncio : 언제 기다려야하는지, 언제 피해야합니까?

Python 3.5의 Asyncio : 언제 기다려야하는지, 언제 피해야합니까?

2025-03-22에 게시되었습니다
검색:695

AsyncIO in Python 3.5: When to Use Await, When to Avoid It?

asyncio에서 python 3.5에서 asyncio 3.5 : 사용시기와 기다릴 때

python 3.5에서 asyncio와 함께 작업 할 때 AWAIT SYNTAX를 사용하기 위해 적절한 시나리오를 이해하는 것이 중요합니다.

. 기다리고

는 I/O 작업을 수행하는 비동기 기능에 사용해야합니다. 여기에는 파일 시스템, 네트워크 또는 이벤트 루프의 실행을 차단할 수있는 기타 리소스에 액세스하는 기능이 포함됩니다. 대기업을 사용하면 I/O 운영이 완료 될 때까지 작업이 완료되어 이벤트 루프가 그 동안 다른 작업을 처리 할 수 ​​있도록합니다.

  • Open_File (filename)
  • 네트워크를 통해 요청을 보냅니다. result = await send_request (data)

  • i/o 운영을 수행하지 않는 기능을 피하십시오. 동기식 코드를 기다리는 것을 사용하면 불필요한 오버 헤드를 소개하고 실행 시간을 증가시킬 수 있습니다.
  • 기다리는 시간의 예 :
데이터를 구문 분석 : parsed_data = parse (입력)

AsyncIO in Python 3.5: When to Use Await, When to Avoid It?

간단한 계산 : result = calction (a a, a). b)

Manipulating objects: object.value = new_value

Special Considerations:

Long-running Synchronous Operations:

Avoid synchronous operations that take a long time to complete (e.g., over 50 ms) 비동기 기능 내에서. 이는 이벤트 루프를 차단하고 다른 작업이 실행되는 것을 방지 할 수 있습니다.

긴 동기 작업을위한 별도의 프로세스 :

장기 실행 동기화 작업이 필요한 경우 별도의 프로세스로 이동하여 다른 작업을위한 이벤트 루프를 풀어 줄 수 있습니다.
  • 이벤트 루프 (예 : requests.get)를 차단하지 않아야하는 I/O 운영에 대한 ThreadPooleExecutor. 이는 ProcessPooleExecutor와 관련된 오버 헤드를 피함으로써 성능을 향상시킬 수 있습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3