python gevent网络库
例子:
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),])