协程并发

在Python中,可以使用asyncio库来创建协程,并使用asyncio.gather来实现Golang风格的并发。

import asyncio

"""
定义一个协程coroutine_example,它只是简单地等待一段时间(通过asyncio.sleep)。
然后在main协程中,我们创建了一个协程列表,并使用asyncio.gather来并发执行它们。
这样,所有的协程将同时运行,而不是顺序执行。最后,asyncio.run用来运行顶级协程。
"""


async def coroutine_example(number):
    print(f"Coroutine {number} starting")
    await asyncio.sleep(2)  # 模拟IO操作
    print(f"Coroutine {number} finished")
    return number


async def main():  # main协程
    # 创建一个协程列表
    coroutines = [coroutine_example(i) for i in range(10)]
    # 使用asyncio.gather来并发执行
    results = await asyncio.gather(*coroutines)
    print(results)


if __name__ == '__main__':
    asyncio.run(main())

 

posted on 2024-06-06 14:19  诚实的表达自己  阅读(1)  评论(0编辑  收藏  举报