协程并发
在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())