@s_hoffman

Как передавать данные из ассинхронного цикла, запущенного в потоке?

import asyncio
import threading

async def asyncio_loop():
    i = 1
    while True:
        i += 1  # Это значение должно быть передано в mainloop()
        

def thread_function():
    asyncio.run(asyncio_loop())
    
x = threading.Thread(target=thread_function)
x.start()

def mainloop():
    while True:
        pass  # Здесь мне нужно получить значения из asyncio_loop
    
mainloop()

Я бы хотел использовать очереди, так как мне важно сохранить упорядоченность данных.
Но для потоков нужно использовать модуль queue, но для asyncio существует asyncio.Queue().
Могу ли я как-то использовать общую очередь или я вообще копаю не в ту сторону?
Сокеты тоже не рассматриваю, так как передавать буду экземпляры классов. Лишних сложностей хотелось бы избежать.
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@AlbertForest
queue.put (стандартный модуль queue) будет нормально работать внутри асинхронной функции
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы