练习PYTHON之EVENTLET

简介: 以下是重点,要会运用: eventlet是一个用来处理和网络相关的python库函数,而且可以通过协程来实现并发,在eventlet里,把“协程”叫做 greenthread(绿色线程)。所谓并发,就是开启了多个greenthread,并且对这些greenthread进行管理,以实现非阻塞式的 I/O。

以下是重点,要会运用:

eventlet是一个用来处理和网络相关的python库函数,而且可以通过协程来实现并发,在eventlet里,把“协程”叫做 greenthread(绿色线程)。所谓并发,就是开启了多个greenthread,并且对这些greenthread进行管理,以实现非阻塞式的 I/O。比如说用eventlet可以很方便的写一个性能很好的web服务器,或者是一个效率很高的网页爬虫,这都归功于eventlet的“绿色线程”,以及对“绿色线程”的管理机制。更让人不可思议的是,eventlet为了实现“绿色线程”,竟然对python的和网络相关的几个标准库函数进行了改写,并且可以以补丁(patch)的方式导入到程序中,因为python的库函数只支持普通的线程,而不支持协程,eventlet称之为“绿化”。

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

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

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

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

 

urls = [
    "http://images2015.cnblogs.com/blog/465438/201511/465438-20151118221619921-967751972.png",
    "http://images2015.cnblogs.com/blog/465438/201511/465438-20151118160713436-1672394517.png",
    "http://images2015.cnblogs.com/blog/465438/201511/465438-20151118160722233-314107087.png",
]

import eventlet
from eventlet.green import urllib2

def fetch(url):
    return urllib2.urlopen(url).read()

pool = eventlet.GreenPool()
for body in pool.imap(fetch, urls):
    print("got body", len(body))

  

目录
相关文章
|
1月前
|
Python
Python:函数篇(每周练习)
Python:函数篇(每周练习)
81 1
|
2月前
|
机器学习/深度学习 人工智能 算法
【Python】编程练习的解密与实战(一)
【Python】编程练习的解密与实战(一)
37 0
|
4月前
|
算法 Python
Python实战练习示例
Python实战练习示例
43 7
|
7月前
|
iOS开发 Python
Python流程控制语句-条件判断语句练习及应用详解
Python流程控制语句-条件判断语句练习及应用详解
94 0
|
8天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
32 0
|
2月前
|
Python
Python猜字游戏是一种常见的编程练习
Python猜字游戏是一种常见的编程练习
24 2
|
2月前
|
机器学习/深度学习 人工智能 算法
【Python】编程练习的解密与实战(四)
【Python】编程练习的解密与实战(四)
38 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【Python】编程练习的解密与实战(二)
【Python】编程练习的解密与实战(二)
50 0
|
3月前
|
算法 小程序 搜索推荐
python一百道经典基础练习题目
python一百道经典基础练习题目
58 1
|
8月前
|
NoSQL Python
牛客网Python入门103题练习|【08--元组】
牛客网Python入门103题练习|【08--元组】
125 1

热门文章

最新文章