python协程是什么?
时间: 2024-04-12 17:24:25 浏览: 122
深入浅析python 协程与go协程的区别
Python协程是一种轻量级的并发编程方式,它允许在单线程中实现多个任务的并发执行。协程可以在任务之间进行切换,而不需要线程的上下文切换开销。Python中的协程通过asyncio模块来实现。
协程的特点包括:
1. 使用async/await关键字定义协程函数,其中await关键字用于挂起当前协程,等待其他协程完成。
2. 协程函数可以通过事件循环(event loop)来调度执行,事件循环负责管理协程的执行顺序和切换。
3. 协程之间可以通过消息传递的方式进行通信,常用的方式包括使用asyncio.Queue类来传递消息。
4. 协程可以通过asyncio.Lock类来实现互斥访问,保证多个协程之间的数据安全。
5. 协程还可以使用asyncio.Semaphore类来限制并发数量,控制协程的执行顺序。
以下是一个简单的示例,演示了如何使用协程实现并发执行的效果[^1]:
```python
import asyncio
async def hello(name):
print(f"Hello, {name}!")
await asyncio.sleep(1)
print(f"Goodbye, {name}!")
async def main():
tasks = []
for i in range(5):
tasks.append(asyncio.create_task(hello(f"Task {i}")))
await asyncio.gather(*tasks)
asyncio.run(main())
```
阅读全文