`gevent` 是一个基于协程的 Python 网络库,它使用了 `greenlet` 库来实现轻量级的线程。下面是一个简单的使用 `gevent` 编写的代码示例,演示了如何使用协程来并发执行异步任务。
```python
import gevent
from gevent import monkey
# 打开猴子补丁,使得gevent能够监听标准的阻塞式I/O操作
monkey.patch_all()
def task(name, count):
for i in range(count):
print(f'Task {name}: {i}')
# 模拟耗时的操作
gevent.sleep(1)
def main():
# 创建协程任务python新手代码画图
task1 = gevent.spawn(task, 'A', 5)
task2 = gevent.spawn(task, 'B', 5)
# 等待所有任务完成
gevent.joinall([task1, task2])
if __name__ == "__main__":
main()
```
在上面的代码中,我们首先导入了 `gevent` 和 `monkey` 模块。`monkey.patch_all()` 的调用是为了在运行时应用 "猴子补丁",以便 `gevent` 能够在标准阻塞 I/O 操作上工作。
然后定义了一个简单的任务函数 `task`,该函数接受任务的名称和要执行的次数,并模拟了一个耗时的操作。在 `main` 函数中,我们使用 `gevent.spawn` 创建了两个协程任务 `task1` 和 `task2`,然后使用 `gevent.joinall` 等待它们完成。
在运行这个程序时,你将看到两个任务在执行时会交替输出,而不是按照顺序依次执行。这就是协程的并发执行效果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论