Для запуска двух функций параллельно с использованием asyncio в Python существует несколько подходов. Один из наиболее распространенных способов - использование объекта asyncio.gather()
, который позволяет запустить несколько корутин или задач асинхронно.
Вот пример кода, демонстрирующий, как запустить две функции параллельно с помощью asyncio:
import asyncio # Определяем две асинхронные функции async def function_1(): # Логика первой функции await asyncio.sleep(2) print('Функция 1 завершилась') async def function_2(): # Логика второй функции await asyncio.sleep(1) print('Функция 2 завершилась') # Создаем событийный цикл loop = asyncio.get_event_loop() # Запускаем функции параллельно tasks = asyncio.gather(function_1(), function_2()) loop.run_until_complete(tasks) # Закрываем цикл loop.close()
В этом примере мы сначала определяем две асинхронные функции function_1()
и function_2()
. Затем мы создаем событийный цикл с помощью asyncio.get_event_loop()
. Далее мы используем функцию asyncio.gather()
для выполнения двух задач параллельно. Функция gather()
принимает список асинхронных функций или корутин в качестве аргументов и возвращает объект Task
, который представляет собой группу задач, которые можно выполнить параллельно. Затем мы используем метод run_until_complete()
объекта цикла, чтобы выполнить задачи. Наконец, мы закрываем цикл с помощью метода close()
.
При запуске кода вышеприведенного примера вы увидите, что обе функции выполняются параллельно, с задержкой 2 секунды в функции function_1()
и задержкой 1 секунду в функции function_2()
.