python 协程的介绍和使用
时间: 2024-11-13 21:23:36 浏览: 5
深入浅析python 协程与go协程的区别
协程(Coroutine)是Python中一种轻量级的线程替代方案,它允许函数暂停并恢复执行,实现了类似多任务处理的效果,但相比于线程,它不需要创建新的进程,因此更节省资源。协程通过`asyncio`库提供支持。
在Python中,协程通常配合`await`关键字和生成器(Generator)一起工作。`async def`定义了一个协程函数,它可以在内部使用`await`来等待其他协程完成或者外部事件发生。当`await`后面的表达式完成后,协程会自动挂起,等到该表达式的值可用后再继续执行。
例如:
```python
import asyncio
async def my_coroutine():
print("Coroutine start")
await asyncio.sleep(1) # 模拟耗时操作
print("Coroutine finished")
# 调用协程
loop = asyncio.get_event_loop()
future = loop.run_until_complete(my_coroutine())
```
这里,`my_coroutine`会在开始打印后暂停1秒,然后再打印结束消息。这种方式可以有效地管理并发任务,避免了过多线程带来的上下文切换开销。
阅读全文