【问题标题】:Python asynchronous concurrency in asynchronous functionPython异步函数中的异步并发
【发布时间】:2021-09-09 04:09:16
【问题描述】:

如何更改此代码以使用g() 而不是f() 运行on_some_event

def f(data):
    pass
async def g(data):
    pass

async def on_some_event(data):
    for i in data:
        threads.append(threading.Thread(target=f, args=(i,)))
        threads[-1].start()
    for i in threads:
        i.join()

我应该使用什么来在异步函数中同时执行异步函数?

【问题讨论】:

    标签: python asynchronous async-await python-asyncio


    【解决方案1】:

    要运行async 函数(协程),您必须使用事件循环调用它。

    事件循环:

    您可以将 Event Loop 视为运行异步任务和 回调,执行网络 IO 操作,运行子进程。

    例如,事件循环示例运行async函数运行单个异步函数:

    import asyncio
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(on_some_event('hello'))
    loop.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多