Come faccio a funzionare i lavori paralleli a Python3 con Asyncio?
-
20-12-2019 - |
Domanda
Supponendo, che ho una classe del genere:
class MyClass:
def __init__(self):
run_some_long_time_function()
.
Come posso creare molti istanze di questa classe in parallelo usando Asyncio in Python 3.4.1?
Soluzione
Il ciclo di eventi Asyncio è single filettato, quindi nulla in esecuzione sul ciclo dell'evento verrà eseguito in parallelo.Puoi comunque generare un filo e attendere che finisca.L'esecutore predefinito dovrebbe creare un thread per te:
loop = asyncio.get_event_loop()
asyncio.async(loop.run_in_executor(None, lambda: MyClass()))
asyncio.async(loop.run_in_executor(None, lambda: MyClass()))
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow