python 协程代码示例
时间: 2024-08-13 11:04:17 浏览: 58
协程(Coroutine)在 Python 中通常通过 `asyncio` 模块实现,它允许函数暂停并恢复执行,实现了轻量级的并发。下面是一个简单的协程代码示例:
```python
import asyncio
# 定义一个协程函数
async def my_coroutine(name):
print(f"协程 {name} 开始")
await asyncio.sleep(1) # 模拟耗时操作
print(f"协程 {name} 结束")
# 创建任务列表
tasks = [my_coroutine("Task1"), my_coroutine("Task2")]
# 使用事件循环启动任务
async def main():
await asyncio.gather(*tasks)
# 启动主循环
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(main())
finally:
loop.close()
```
在这个例子中,`my_coroutine` 是协程函数,`await asyncio.sleep(1)` 表示函数会暂停执行直到被唤醒。`asyncio.gather` 函数用于并发运行多个协程。
相关问题
python 协程 代码实现
在Python中,协程(coroutine)是一种轻量级的线程实现,它通过`asyncio`库提供了一种异步编程的方式。协程允许程序在同一时刻运行多个任务,而无需创建多个线程,这有助于避免全局解释器锁(GIL)的问题,并提高并发性能。
下面是一个简单的协程示例,使用`asyncio`和`await`关键字:
```python
import asyncio
# 定义一个协程函数
async def count():
print("Start counting")
for i in range(5):
await asyncio.sleep(1) # 模拟耗时操作
print(f"Counting: {i}")
# 主函数启动协程并等待完成
async def main():
task = count()
await task
# 运行主函数
if __name__ == "__main__":
asyncio.run(main())
```
在这个例子中,`count()`函数是一个协程,内部的`await asyncio.sleep(1)`使得程序暂停直到下一次循环。`main()`函数启动协程并阻塞直到其完成。`asyncio.run()`用于简化整个事件循环的管理。
python协程asyncio代码
以下是一个简单的Python协程asyncio代码示例:
```python
import asyncio
async def say_hello():
print("Hello")
await asyncio.sleep(1) # 模拟网络延迟
print("World")
async def main():
await asyncio.gather(say_hello(), say_hello(), say_hello())
asyncio.run(main())
```
在这个例子中,我们定义了两个协程函数:`say_hello` 和 `main`。`say_hello` 打印 "Hello",等待1秒钟模拟网络延迟,然后打印 "World"。`main` 函数使用 `asyncio.gather` 并行运行三个 `say_hello` 协程。
在运行 `main` 函数时,我们使用 `asyncio.run` 运行事件循环,并等待所有协程完成。输出应该如下:
```
Hello
Hello
Hello
World
World
World
```
阅读全文