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 отдаю её результат.
запустил код и получил такую же ошибку, что я не так делаю?
Обсуждают сегодня