将并发期货转换为Asyncio python3.7

时间:2019-07-25 23:53:39

标签: python-asyncio python-3.7

我将开始着眼于使用asyncio转换代码。我找不到我理解的示例或解释。我想知道是否有人可以将这个简单的代码转换为使用asyncio而不是并发的期货?这是一些旧代码,可以帮助我理解线程如何帮助加快速度。

import time
from concurrent import futures


def run(data):
        time.sleep(.5)
        print("Hello World")
        return


data = range(20)
max_workers = 10
concurrent = futures.ThreadPoolExecutor(max_workers)

with concurrent as ex:
    ex.map(run, data)

1 个答案:

答案 0 :(得分:1)

您在这里:

import asyncio


async def run(data):
    await asyncio.sleep(0.5)
    print("Hello World")


async def main():
    await asyncio.gather(*[
        run(i) 
        for i 
        in range(20)
    ])


asyncio.run(main())

您可能有兴趣阅读this article,以更好地了解asyncio的工作原理。