gevent 是一个 Python 网络框架 - 文章教程

gevent 是一个 Python 网络框架

发布于 2021-04-08 字数 1823 浏览 829 评论 0

gevent 是一个 python 网络框架,对应 Java 的 netty 框架,使用 greenlet 提供异步API,基于 libevent,它为各种并发和网络相关的任务提供了整洁的 API。

特点

快速基于 libevent 的 event loop
基于greenlet的轻量级执行单元
重用python标准api(event,queue)
协同的socket和ssl模块
使用标准库和第三方模块写标准阻塞socket(gevent.monkey)
dns 查询执行通过 libevent-dns
基于 libevent-http 的快速 WSGI 服务器

安装

python v2.4
greenlet
libevent v1.4.x

from gevent import socket

说不能导入 socket 参考 http://stackoverflow.com/questions/6431096/gevent-does-not-install-properly-on-ubuntu

例子

import gevent
from gevent import socket
urls = ['www.google.com','www.python.org','www.foofish.net']
jobs = [gevent.spawn(socket.gethostbyname, url) for url in urls]
gevent.joinall(jobs, timeout=2)
print [job.value for job in jobs]
['74.125.128.147', '82.94.164.162', '106.186.27.60']

gevent.socket 与 python 标准库的 socket 有相同的接口

http://sdiehl.github.io/gevent-tutorial/
http://architects.dzone.com/articles/threads-versus-greenlets
http://blog.pythonisito.com/2012/07/introduction-to-gevent.html

如果你对这篇文章有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

1872 文章
23 评论
32784 人气
更多

推荐作者

qq_pH6xKF

文章 0 评论 0

a3576419

文章 0 评论 0

Meets

文章 0 评论 0

许强

文章 0 评论 0

adao3056

文章 0 评论 0