1.gevent執(zhí)行
無(wú)為ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
import gevent
def func1():
print('func1 start')
gevent.sleep(2)
print('func1 end')
def func2():
print('func2 start')
gevent.sleep(1)
print('func2 end')
def func3():
print('func3 start')
gevent.sleep(0)
print('func3 end')
if __name__=='__main__':
gevent.joinall([
gevent.spawn(func1),
gevent.spawn(func2),
gevent.spawn(func3),
])
>>:
func1 start
func2 start
func3 start
func3 end
func2 end
func1 end
2.gevent 中的mokey
from urllib import request
import gevent
import time
from gevent import monkey
monkey.patch_all()#把所有的io操作做上標(biāo)記
def func(url):
print('爬取地址:%s'%url)
resp=request.urlopen(url)
data=resp.read()
print('%s地址的字節(jié)數(shù)為:%s'%(url,len(data)))
urls=['http://www.sina.com.cn/',
'https://www.python.org',
'https://github.com',
]
if __name__=='__main__':
start_time=time.time()
for url in urls:
func(url)
print("同步執(zhí)行時(shí)間為:",time.time()-start_time)
asvnc_start_time=time.time()
gevent.joinall([
gevent.spawn(func,'http://www.sina.com.cn/'),
gevent.spawn(func,'https://www.python.org'),
gevent.spawn(func,'https://github.com')
])
print("異步執(zhí)行時(shí)間為:", time.time() - asvnc_start_time)
>>:
爬取地址:http://www.sina.com.cn/
http://www.sina.com.cn/地址的字節(jié)數(shù)為:570200
爬取地址:https://www.python.org
https://www.python.org地址的字節(jié)數(shù)為:48834
爬取地址:https://github.com
https://github.com地址的字節(jié)數(shù)為:86520
同步執(zhí)行時(shí)間為: 7.055272817611694
爬取地址:http://www.sina.com.cn/
爬取地址:https://www.python.org
爬取地址:https://github.com
http://www.sina.com.cn/地址的字節(jié)數(shù)為:570200
https://www.python.org地址的字節(jié)數(shù)為:48834
https://github.com地址的字節(jié)數(shù)為:59615
異步執(zhí)行時(shí)間為: 2.019655466079712