is closed')?
Запускаю две функции, в них ошибок нет, всё корректно отрабатывает, но потом получаю ошибку. Подскажите как можно это исправить?
def go():
asyncio.run(main())
asyncio.run(create_new_client())
threading.Thread(target=go).start()
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000174EBB49C10>
Traceback (most recent call last):
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 746, in call_soon
self._check_closed()
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Вместо asyncio.run юзай loop=get_event_loop() loop.run_until_complete
не надо так делать
сделай go аиснхронной и стартуй её как мейн
Почему?
потому что это какие-то костыли
как именно мне это сделать, подскажите пожалуйста
ты первый развидишь asyncio, да?
тогда отложи пока свой код и почитай что-нибудь про asyncio
а по коду как быть?
не спеши, выдохни, почитай что такое асинхронные функции, как они работают, зачем нужен asyncio.run и что происходит при await
хорошо, спасибо)
нужно сделать что-то вроде такого? Я почитал про абстракции) async def tasks(): await main() await create_new_client() def go(): asyncio.run(tasks()) threading.Thread(target=go).start()
а тред тебе зачем?
сразу вызвать go и всё? А почему если запустить потоки для разных асинхронных задач будет плохо?
потому что асинкио не потокобезопасен и фактически создан как альтернатива потокам
и ещё вопрос если можно, в чём именно проявляется проблема с потокобезопасностью, я же просто жду результата выполнения функции, и когда статус finished отдаю её результат.
запустил код и получил такую же ошибку, что я не так делаю?
Обсуждают сегодня