例子:
import gevent
from gevent import monkey
import urllib2
from gevent.pool import Pool
import datetime,sys
def resquest01():
print "resquest start..."
for i in threads:
print i
thread1 = int(threads[0])
print type(thread1)
print "thread1"
print thread1
print "thread1"
for n in loops:
print n
loop1 = int(loops[0])
print type(loop1)
print "loop1"
print loop1
print "loop1"
print('Running in foo')
gevent.sleep(0)
print('Explicit context switch to foo again')
#start_time = time.ctime()
#print start_time
urls = ['http://10.154.156.238:8000'] * loop1
pool = Pool(thread1)
print pool.map(download,urls)
#end_time = time.ctime()
#print end_time
print '-------------------------------------------------------'
def resquest02():
print "resquest start..."
for i in threads:
print i
thread2 = int(threads[1])
print type(thread2)
print "thread2"
print thread2
print "thread2"
for n in loops:
print n
loop2 = int(loops[1])
print type(loop2)
print "loop2"
print loop2
print "loop2"
print('Explicit context to bar')
gevent.sleep(0)
print('Implicit context switch back to bar')
urls = ['http://10.154.156.238:8000/error'] * loop2
pool = Pool(thread2)
print pool.map(download,urls)
def download(urls):
start_time = datetime.datetime.now()
print start_time
try:
respones = urllib2.urlopen(urls)
code = respones.getcode()
print code
except urllib2.HTTPError,e:
print e.code
end_time = datetime.datetime.now()
print end_time
elapsed_time = (start_time - end_time).seconds
print 'elapsed_time:' + str(elapsed_time)
#return urllib2.urlopen(urls).read()
#gevent.joinall([gevent.spawn(foo),gevent.spawn(bar),])
if __name__ == '__main__':
print "start testing..."
origin = sys.argv[1:]
print origin
threads1 = 1
print type(threads1)
threads2 = 2
print type(threads2)
global loops,threads,urls
loops = []
threads = []
urls = []
for index, i in enumerate(origin):
if index % 3 == 2:
print 'index is %d, i is %s' % (index,i)
loops.append(i)
if index % 3 == 1:
print 'index is %d ,i is %s' % (index,i)
threads.append(i)
if index % 3 == 0:
print 'index is %d , i is %s' % (index,i)
urls.append(i)
print loops
print threads
print urls
print "main() end..."
#loop = i
#print loop
gevent.joinall([gevent.spawn(resquest01),gevent.spawn(resquest02),])
相关推荐
Quinet是一个简单的客户端网络并发框架, 其基于Python的gevent库(即协程), 并兼容Python2和Python3。Quinet旨在让任何一个Python开发者只需几行代码即可享受网络高并发带来的效率和乐趣.
python库。 资源全名:gevent-websocket-0.9.4.tar.gz
由Gevent社区编写 gevent是一个基于libev的并发库。它为各种并发和网络相关的任务提供了整洁的API。
Gevent库的奥义在于并发式的高性能网络程序设计支持,这里我们将来讲解Python的网络编程库Gevent的安装及使用技巧,来看一下Gevent支持的多进程程序编写:
Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的...由于切换是在IO操作时自动完成,所以gevent需要修改Python自带的一些标准库,这一过程在启动时通过monkey patch完
gevent开发指南,Gevent是一个基于libev 的并发库。它为各种并发和网络相关的任务提供了整洁的API。 本指南假定读者有中高级水平,但不要求其他更多的知识,不期待读者有并发方面的知识。本指南的目标在于给予你需要...
在Python 2的时代,高性能的网络编程主要是使用Twisted、Tornado和Gevent这三个库,但是它们的异步代码相互之间既不兼容也不能移植。如上一节说的,Gvanrossum希望在Python 3 实现一个原生的基于生成器的协程库,...
gevent是一个基于协程的Python网络库,它使用greenlet在libev或libuv事件之上提供高级同步API。
guv 是Python >= 3.2 和 pypy3的快速网络库和 WSGI 服务器(如 gevent/eventlet) 事件循环后端是 ,旨在与接口完全兼容。 CPython 和 pypy3 完全支持 pyuv_cffi。 >= 1.0.0。 通过 dnspython3 支持异步 DNS 查询...
第 21 章 服务端 socket 开发之多线程和 gevent 框架并发测试[python 语言] 第 22 章 利用 pypy 提高 python 脚本的执行速度及测试性能 第 23 章 python 实现 select 和 epoll 模型 socket 网络编程 第 24 章 对 ...
可以使在C代码中具有网络操作的Python扩展模块与兼容。 使用与相同的动态功能重定向技术来在运行时修补阻止网络的操作,而无需修改原始模块。 目前, 仅支持ELF格式模块,并且已在Linux上进行了测试。 建置状态 科...
使用ZeroMQ套接字和gevent的P2P python库 概述 peerz是使用Zeromq绑定在python中实现结构化对等覆盖网络的实验。 对等管理和路由逻辑都主要基于现有构造的覆盖网络诸如kademlia和tapestry 。 注意: peerz仍处于...
我花了一个良好的时间探索,一个非常强大的集网络库,并伤心地学习这先行者是如何失去了它的普及为他人(包括Python核心开发团队)创建自己的现代化解决方案,而不是建立在它之上. 这是一种耻辱,但随着许多伟大...
基于库的Cyberbot框架,必须首先安装gevent库: pip install gevent 然后克隆此存储库: git clone https://github.com/RickGray/cyberbot.git cyberbot Cyberbot框架具有版本2.7.x和支持的开箱即用。 ...
Python爬虫库的介绍 数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...
Python爬虫库的介绍 数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...
Python爬虫库的介绍 数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...
是网络库的WebSocket库。 功能包括: 在套接字级别或使用抽象接口进行集成。 使用 (WebSocket应用程序消息协议)的RPC和PubSub框架。 使用简单的WebSocket协议插件API即可轻松扩展 from geventwebsocket ...
#Team 30 项目 1 ##描述 该项目涉及在云上构建一个性能测试工具。该工具在云上启动多个虚拟机,从这些虚拟机中的每一个,它会在目标... 它使用 gevent(基于事件编程的 Python 库)、flask、angularjs 和 socketio。