首页 > 解决方案 > 使用 asyncio 执行的非阻塞 python 类方法

问题描述

我正在尝试初始化一个非阻塞任务,该任务与其父对象共享数据。它是一个 websocket 客户端,它不会阻止主执行,尽管仍然“永远”运行。

我谦虚的期望是这样做会做到,但遗憾的是,它阻塞了主线程。

loop = asyncio.new_event_loop()
task = loop.create_task(self.initWS())
loop.run_forever()

标签: pythonpython-asyncio

解决方案


self.initWS()确实不是阻塞主线程,而是阻塞loop.run_forever()

如果你想同时执行更多任务self.initWS(),你也必须将它们添加到 asyncio 循环中。


推荐阅读