欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python已協(xié)程方式處理任務實現(xiàn)過程

 更新時間:2019年12月27日 14:39:47   作者:長不大的菜鳥  
這篇文章主要介紹了python已協(xié)程方式處理任務實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了python已協(xié)程方式處理任務實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

#從genent中導入monky模塊①
from gevent import monkey
#把程序變成協(xié)程的方式運行②
monkey.patch_all()
import gevent,requests,time
#導入requests和time
start = time.time()
#記錄程序開始時間
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8個網站封裝成列表
 
def get_data(url):
  r = requests.get(url)
  # 用requests.get()函數(shù)爬取網站
  print(url, time.time()-start,r.status_code)
 
task_list=[]
# 創(chuàng)建一個空列表
for url in url_list:
  # 用gevent里面的spawn函數(shù)創(chuàng)建任務 get_data是方法名,url是參數(shù)③
  task=gevent.spawn(get_data,url)
  # 將創(chuàng)建的任務添加到task_list④
  task_list.append(task)
#執(zhí)行任務列表中的所有任務⑤
gevent.joinall(task_list)
 
end = time.time()
#記錄程序結束時間
print(end-start)
#end-start是結束時間減去開始時間,就是最終所花時間。

使用隊列,代碼如下:

#從genent中導入monky模塊①
from gevent import monkey
#把程序變成協(xié)程的方式運行②
monkey.patch_all()
import gevent,requests,time
#從gevent庫里導入queue模塊
from gevent.queue import Queue
#導入requests和time
start = time.time()
#記錄程序開始時間
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8個網站封裝成列表
#創(chuàng)建隊列對象,并賦值給work。
work=Queue()
for url in url_list:
  # 用put_nowait()函數(shù)可以把網址都放進隊列里。
  work.put_nowait(url)
 
 
def get_data():
  # 當隊列不是空的時候,就執(zhí)行下面的程序。
  while not work.empty():
    # 用get_nowait()函數(shù)可以把隊列里的網址都取出。
    url=work.get_nowait()
    r = requests.get(url)
    # 用requests.get()函數(shù)爬取網站 qsize隊列長度
    print(url, work.qsize(),r.status_code)
 
task_list=[]
# 創(chuàng)建一個空列表
# 創(chuàng)建了2個爬蟲
for x in range(2):
  # 用gevent里面的spawn函數(shù)創(chuàng)建任務 get_data是方法名
  task=gevent.spawn(get_data)
  # 將創(chuàng)建的任務添加到task_list④
  task_list.append(task)
#執(zhí)行任務列表中的所有任務⑤
gevent.joinall(task_list)
 
end = time.time()
#記錄程序結束時間
print(end-start)
#end-start是結束時間減去開始時間,就是最終所花時間。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論