Was passiert mit der Asyncio-Ereignisschleife, wenn mehrere CPU-gebundene Aufgaben gleichzeitig in einem ThreadpoolexecuPython

Python-Programme
Anonymous
 Was passiert mit der Asyncio-Ereignisschleife, wenn mehrere CPU-gebundene Aufgaben gleichzeitig in einem Threadpoolexecu

Post by Anonymous »

Ich arbeite an einer asynchronen Python-Anwendung (unter Verwendung von Fastapi/Starlette/Asyncio), das synchrone CPU-gebundene Aufgaben zu einem Thread-Pool (synchrones CPU-gebundene Aufgaben) (

Code: Select all

ThreadPoolExecutor
) Um zu vermeiden, dass die Ereignisschleife blockiert wird. Ich möchte jedoch klarstellen, wie sich dies auf die Asyncio-Ereignisschleife auswirkt, wenn multiple < /strong> CPU-gebundene Aufgaben (z. B. 10) gleichzeitig am Thread-Pool eingereicht werden. Thread-Pool mit mehreren Worker-Threads (z. B. 10 Threads).
Zehn CPU-gebundene synchrone Aufgaben werden fast gleichzeitig eingereicht, wobei jeder Python-Code ausführt, der die GIL ausführt. /> < /ul>

Was ich verstehe < /h2>

Wenn ein Thread den Gil hält, kann kein anderer Thread oder der Ereignisschleife Python-Bytecode ausführen. Es. Es gibt keine Garantie dafür, dass die Ereignisschleife eine sofortige Priorität hat. /> Ist dieses Verständnis genau darüber, wie sich die GIL-Konkurrenz auf die Asyncio-Ereignisschleife auswirkt? Schleifenfäden über Worker-Threads in solchen Szenarien? Threadpoolexecutor < /code> In Fastapi werden einige blockierende CPU-gebundene Aufgaben asynchron ausführen, möchten jedoch die Auswirkungen auf die Reaktionsfähigkeit der Ereignisschleife verstehen, wenn mehrere solche Aufgaben gleichzeitig ausgeführt werden.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post