python协程多任务
时间: 2023-09-01 18:10:53 浏览: 168
在 Python 中,协程是一种轻量级的线程,也称为微线程或者用户态线程。协程不是由操作系统进行调度,而是由程序员自己控制,因此更加高效。
Python 通过 asyncio 模块提供了协程的支持,它是 Python 3.4 引入的标准库。使用 asyncio 模块可以轻松地实现多任务并发。
下面是一个使用协程实现多任务的示例代码:
```python
import asyncio
async def task1():
print("Starting task1")
await asyncio.sleep(1)
print("Task1 completed")
async def task2():
print("Starting task2")
await asyncio.sleep(2)
print("Task2 completed")
async def main():
print("Starting main")
task1_result = asyncio.create_task(task1())
task2_result = asyncio.create_task(task2())
await task1_result
await task2_result
print("Main completed")
asyncio.run(main())
```
在这个示例中,我们定义了两个协程函数 task1 和 task2,它们分别会等待 1 秒和 2 秒。我们还定义了一个 main 协程函数,它会同时启动 task1 和 task2,并等待它们完成。
在 main 函数中,我们使用 asyncio.create_task() 函数来创建并启动 task1 和 task2 协程。这个函数会返回一个 Task 对象,我们可以使用 await 等待这个 Task 对象完成。
最后,我们使用 asyncio.run() 函数来运行 main 协程函数。
通过使用 asyncio 模块,我们可以轻松地实现多任务并发,提高程序的执行效率。
阅读全文