eventlet

高并发的网络编程库
授权协议 MIT
开发语言 Python
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 不详
投 递 者 赵超
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

eventlet是一款使用Python编写的为高并发的网络编程而设计的库。由第二人生(secondlife)所开源发布。在开源云计算技术OpenStack里起到了比较重要的作用。

它通过greenlet提供的协程功能,让开发者可以不用将以往的多线程等并发程序的开发方式转变成异步状态机模型,就能直接使用select/epoll/kqueue等操作系统提供的支持高并发IO接口,并且能尽可能地发挥它们在并发上的优势。

与它同类的另一款产品是Gevent,它们有着很类似的设计。

CPython下,由于Gevent使用了Cython绑定了libev或者libevent等C库,导致Gevent比eventlet有着更优秀的性能。

但是也因为Cython写的部分组件,导致Gevent无法借助PyPy来给它加速,而eventlet则没有这个限制。在PyPy的加速下,eventlet的性能可以有成倍的提升。

  •   eventlet语境下的“绿色线程”普通线程之间的区别:   1. 绿色线程几乎没有开销,不用像保留普通线程一样保留“绿色线程”,每一个网络连接对应至少一个“绿色线程”;   2. 绿色线程需要人为的设置使其互相让渡CPU控制权,而不是抢占。绿色线程既能够共享数据结构,又不需要显式的互斥控制,因为只有当一个绿色线程让出了控制权后其他的绿色线程才能访问彼此共享的数据结构。   下图是eventl

  • 原文地址: http://www.cnblogs.com/Security-Darren/p/4168233.html http://www.2cto.com/net/201610/553556.html http://blog.csdn.net/gaoxingnengjisuan/article/details/12913275 eventlet是python库函数,一个是处理和网络相关的,另一

  • wsgi  server: #!/usr/bin/python import eventlet from eventlet importwsgi   def hello_world(env,start_response):     start_response('200 OK', [('Content-Type','text/plain')])     return ['Hello, World!

  • eventlet学习笔记之一:基本概念 本系列文章翻译自英文官方文档,原文请访问官方文档 基本用法 如果这是您第一次使用Eventlet,您可能会发现设计模式文档中的示例是一个很好的起点。 Eventlet是围绕绿色线程(即协程,我们使用术语可互换)的概念构建的,这些概念是为了进行与网络相关的工作而启动的。绿色线程与正常线程的区别主要有两种: 绿线非常便宜,几乎是免费的。您不必像普通线程一样保存绿

  • Eventlet 是 由第二人生(Secondlife )开源的高度伸缩性的Python网络编程库. Eventlet 可以用来处理多线程方面的工作,但它使用的是 green threads 概念,所以用资源的开销很少。 根据官方介绍大致特性如下: 非阻塞I/O模型协程(Coroutines)使得开发者可以采用阻塞式的开发风格,却能够实现非阻塞I/O的效果隐式事件调度,使得可以在Python解释器

  • eventlet是一个可以改变你代码运行方式的python并发网络库,同时不改变你编写代码的方式. 它使用高度可扩展的非阻塞I/O,epoll或者kqueue,libevent. 协程保证开发者使用类似线程的方式来编写非阻塞程序,同时保证了非阻塞I/O的好处. 内含事件驱动,意味着你可以很容易在python解释器中使用它,或者在大程序的某一部分使用它. 很容易开始使用eventlet,也容易将它应

  • 1  协程 1.1  什么是协程        协程,又称微线程,纤程。英文名Coroutine。协程是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他的协同程序共享全局变量。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。协程看上去也是子程序,但执行过程中,在“子程序”(协程)内部可中断,然后转而执行别的“子程序”,在适当的时候再返回来接着执行。 1

  • 安装了eventlet但是报错No module named ‘eventlet’ 解决方案: 降低redis版本至2.8.21

 相关资料
  • 1. 网络编程概述 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上。 由于你的电脑上可能不止浏览器,

  • Socket Linux Socket 编程(不限 Linux) Socket 中的 read()、write() 函数 ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); read() read 函数是负责从 fd 中读取内容。 当读成功时,rea

  • 网络基础 Socket I/O 模型的演进

  • Unix/Linux网络编程常用的头文件有: arpa/inet.h netinet/in.h sys/socket.h netdb.h hostent(结构体)表示主机 servent(结构体)表示服务数据库的登记项信息

  • 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上。 由于你的电脑上可能不止浏览器,还有QQ、Skype

  • 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上。 由于你的电脑上可能不止浏览器,还有QQ、Skype

  • 概述 网络程序指有客户端和服务器端,服务器端通常可以提供一些服务,客户端需要和服务器端建立连接后,消费服务器端所提供的服务,网络程序横跨所有 TCP/IP 5 层网络模型,本部分内部包括: 网络编程基础说明 网络程序示例 网络概念原理实践 下图描述的是一对 TCP 客户与服务器通信的网络程序发生的一些典型事件的时间表: 服务器首先启动,稍后某个时刻客户启动,它试图连接到服务器。客户给服务器发送一个

  • 网络基础 在互联网上之间的通信交流,一般是基于 TCP (Transmission Control Protocol,传输控制协议) 或者 UDP (User Datagram Protocol,用户数据报协议) ,如下图: 编写 Java 应用,我们只需关注于应用层 (application layer),而不用关心 TCP 和 UDP 所在的传输层是如何实现的。java.net 包含了你编程所