Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python и Asyncio

Михаил Петров Знаток (414), открыт 18 часов назад
Как на Python с помощью asyncio осуществить запуск двух асинхронных функций независимо друг от друга? пробовал через threading, но там сразу много огромных ошибок вылезает, может быть есть альтернативный вариант? Пример кода:

 import asyncio
import time

async def function1():
..while True:
....print("Function1")
....time.sleep(1)

async def function2():
..while True:
....print("Function2")
....time.sleep(2)

# Запустить обе асинхронные функции так, чтобы они выполнялись независимо друг от друга, т.е. выполнение одной функции не блокировало выполнение другой
Заранее спасибо за помощь
2 ответа
Александр Лонберг Мыслитель (9063) 17 часов назад
Примерно так
 import asyncio 

async def function1():
while True:
print("Function1")
await asyncio.sleep(2)

async def function2():
while True:
print("Function2")
await asyncio.sleep(1)

async def main():
await asyncio.gather(function1(), function2())

asyncio.run(main())
Только это не параллельное выполнение, а поочередное(в месте перерыва await).
Для параллельного надо запускать multiprocessing.
Михаил ПетровЗнаток (414) 7 часов назад
asyncio.gather() пробовал, но да, он поочередно выполняет, а не параллельно. Спасибо за ответ!
Похожие вопросы