#python #asynchronous #async-await #python-asyncio
Вопрос:
Как я могу изменить этот код для запуска on_some_event
g()
вместо f()
?
def f(data):
pass
async def g(data):
pass
async def on_some_event(data):
for i in data:
threads.append(threading.Thread(target=f, args=(i,)))
threads[-1].start()
for i in threads:
i.join()
Что я должен использовать для одновременного выполнения асинхронных функций в асинхронной функции ?
Ответ №1:
Чтобы запустить async
функцию (сопрограмму), вы должны вызвать ее с помощью цикла событий.
Циклы событий:
Цикл событий можно рассматривать как функции для выполнения асинхронных задач и обратных вызовов, выполнения операций сетевого ввода-вывода и запуска подпроцессов.
например, Пример цикла событий для запуска async
функции для запуска одной асинхронной функции:
import asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(on_some_event('hello'))
loop.close()