Python中Gevent的使用

舞夢輝影
发布: 2025-09-29 22:46:01
原创
1017人浏览过
Gevent通过协程实现高效并发,安装后使用monkey.patch_all()使标准库非阻塞,gevent.spawn()创建协程并发执行任务,结合requests可加速HTTP请求,适用于I/O密集型场景如爬虫、高并发服务器。

python中gevent的使用

Gevent 是一个基于 greenlet 的 Python 并发框架,它提供了高性能的网络编程能力,通过协程实现异步操作,而无需使用线程或回调。Gevent 的最大优势是将异步编程变得像同步代码一样简洁易读。

1. 安装与基本概念

安装 gevent 非常简单:

pip install gevent

核心概念:

  • Greenlet:轻量级协程,由 gevent 封装,可在同一线程内并发执行。
  • Monkey Patching:gevent 修改标准库(如 socket、time)使其变为非阻塞,从而让第三方库也能在协程中正常工作。

通常在程序最开始打上 monkey patch:

立即学习Python免费学习笔记(深入)”;

from gevent import monkey
monkey.patch_all()

2. 协程的创建与运行

使用 gevent.spawn() 可以启动一个协程任务:

import gevent

def task(name, duration):
print(f"Task {name} starting")
gevent.sleep(duration)
print(f"Task {name} finished")

# 启动多个协程
jobs = [
gevent.spawn(task, "A", 2),
gevent.spawn(task, "B", 1),
gevent.spawn(task, "C", 3)
]

gevent.joinall(jobs)

输出会显示 B 最先完成,A 次之,C 最后,但总耗时约 3 秒,说明并发执行。

SpeakingPass-打造你的专属雅思口语语料
SpeakingPass-打造你的专属雅思口语语料

使用chatGPT帮你快速备考雅思口语,提升分数

SpeakingPass-打造你的专属雅思口语语料 25
查看详情 SpeakingPass-打造你的专属雅思口语语料

3. 使用 Gevent 进行网络请求

结合 requests 库可以高效发起大量 HTTP 请求:

from gevent import monkey
monkey.patch_all() # 必须在导入 requests 前打补丁

import gevent
import requests

def fetch(url):
print(f"Fetching {url}")
resp = requests.get(url)
print(f"{url} -> {resp.status_code}, length: {len(resp.content)}")

urls = [
"https://httpbin.org/delay/2",
"https://httpbin.org/delay/1",
"https://httpbin.org/json"
]

jobs = [gevent.spawn(fetch, url) for url in urls]
gevent.joinall(jobs)

原本串行需要几秒的任务,并发后显著提速。

4. Gevent 的常见应用场景

适合用于 I/O 密集型任务,例如:

  • 批量抓取网页或 API 数据
  • 处理大量客户端连接的服务器(配合 WSGIServer)
  • 定时任务并发执行

示例:启动一个简单的 WSGI 服务:

from gevent.pywsgi import WSGIServer

def app(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return [b'Hello from gevent server']

server = WSGIServer(('127.0.0.1', 8000), app)
server.serve_forever()

该服务器能高效处理高并发连接。

基本上就这些。Gevent 让并发变得简单,只要注意打好 monkey patch,避免阻塞调用,就能发挥其强大性能。不复杂但容易忽略细节。

以上就是Python中Gevent的使用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号