gevent

gevent是一个基于协程的python网络库.

  特性:

    1.基于libev的事件循环

    2.基于greenlet 轻量级的执行单元  (what is greenlet ?)

    3.来自python标准库的重用API (don‘t know what‘s this mean)

    4.能够使用 阻塞socket 的标准库或第三方模块

    5.通过线程池执行DNS查询

    6.TCP/UDPHTP 服务器

    7.子进程支持

    8.线程池

时间: 2024-10-11 22:54:50

gevent的相关文章

Gevent的socket协程安全性分析

一般讨论socket的并发安全性,都是指线程的安全性...而且绝大多数的情况下socket都不是线程安全的.. 当然一些框架可能会对socket进行一层封装,让其成为线程安全的...例如java的netty框架就是如此,将socket封装成channel,然后让channel封闭到一个线程中,那么这个channel的所有的读写都在它所在的线程中串行的进行,那么自然也就是线程安全的了..... 其实很早看Gevent的源码的时候,就已经看过这部分的东西了,当时就已经知道gevent的socket不

linux gevent 安装

在安装gevent这个库的时候,首先要确定是否安装了libevent,通常情况下系统是不会自在的,所以要自己安装下载地址是:http://libevent.org/ 下载之后使用: ./configure -prefix=/usr make make install 确定安装成功之后,使用pip install gevent就可以顺利安装了

基于协程的Python网络库gevent

import gevent def test1(): print 12 gevent.sleep(0) print 34 def test2(): print 56 gevent.sleep(0) print 78 gevent.joinall([ gevent.spawn(test1), gevent.spawn(test2), ]) 解释下,"gevent.spawn()"方法会创建一个新的greenlet协程对象,并运行它."gevent.joinall()"

gevent的线程池

import timeimport geventfrom gevent.threadpool import ThreadPool pool = ThreadPool(6)start = time.time()for _ in range(12):    pool.spawn(time.sleep, 1)gevent.wait()delay = time.time() - startprint('Running "time.sleep(1)" 4 times with 3 threads

基础入门_Python-模块和包.Gevent异步服务类实现多姿势WEB实时展示?

内置服务: 1. gevent.server.StreamServer类, 常用于创建异步TCP服务器 #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # OsChina: http://xmdevops.blog.51cto.com/ # Purpose: # """ # 说明: 导入公共模块 import time import gevent fr

练习PYTHON之GEVENT

这个只是作了第一个样例,里面还有很多高级的技巧,希望以后用得着. 我觉得因为以前看过几本LINUX内核,关于异步非阻塞IO,信号,锁之类的,所以理解起来,还可以. import gevent def foo(): print 'Running in foo' gevent.sleep(0) print 'Explicit context switch to foo again' def bar(): print 'Explicit context to bar' gevent.sleep(0)

nginx+django+gunicorn+gevent+supervisor

安装环境介绍: python2.7.10 django1.7.9 linux CentOS release 6.5 (Final) 64 假设我的项目位置为/var/www/myweb 服务器IP为192.168.0.100 1.插件安装 gunicorn-19.7.1   uwsgi组件 gevent-1.2.1    异步组件 greenlet-0.4.12  异步组件 supervisor-3.3.0 进程管理组件 直接下载然后运行 对应的 python setup.py install

Gevent的长轮询实现方法详解

长轮询 1.浏览网页时,浏览器会传HTTP 请求到服务器,服务器会根据请求将网页的内容传给浏览器,但是在很多的情况下,使用者会需要看到最新的即时性资讯,例如观看股票市场行情,而在以前只能靠着重新载入网页才能获得最新信息,但是这样不但很浪费时间,也会佔用很多不必要的网络资源,并不是一个好的方式: 2.长轮询就是解决这个问题的一个办法. 什么是长轮询 1.长时间轮询(long-polling)是让服务器在接收到浏览器发出的HTTP 请求后,服务器会等待一段时间,若在这段时间里面伺服器有新的数据更新,

python 协程库gevent学习--gevent数据结构及实战(三)

gevent学习系列第三章,前面两章分析了大量常用几个函数的源码以及实现原理.这一章重点偏向实战了,按照官方给出的gevent学习指南,我将依次分析官方给出的7个数据结构.以及给出几个相应使用他们的例子. 1.事件: 事件是一个可以让我们在Greenlet之间异步通信的形式贴上一个gevent指南上面的例子: import gevent from gevent.event import Event ''' Illustrates the use of events ''' evt = Event