美文网首页
async await 和 threading 同时使用

async await 和 threading 同时使用

作者: butters001 | 来源:发表于2021-05-06 16:48 被阅读0次

如何对 async 函数开启子线程执行呢

async some_callback(args):
    await some_function()

需要将其作为目标线程 比如:
_thread = threading.Thread(target=some_callback, args=("some text"))
_thread.start()
但是 async函数 不能直接放到target里

如何实现上面的需求呢

方法1
async def some_callback(args):
    await some_function()

def between_callback(args):
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)

    loop.run_until_complete(some_callback(args))
    loop.close()

_thread = threading.Thread(target=between_callback, args=("some text"))
_thread.start()
方法2
_thread = threading.Thread(target=asyncio.run, args=(some_callback("some text"),))
_thread.start()

相关文章

网友评论

      本文标题:async await 和 threading 同时使用

      本文链接:https://www.haomeiwen.com/subject/ftyddltx.html