1. 程式人生 > 其它 >Centos 7 升級核心

Centos 7 升級核心

目的:在爬蟲中使用非同步實現高效能的資料爬取操作。

非同步爬蟲的方式:

  - 多執行緒: 多程序(不建議):

      好處:可以為相關阻塞的操作單獨開啟執行緒或者程序,阻塞操作就可以非同步執行;

      弊端:無法無限制的開啟多執行緒或者多程序;

   - 執行緒池、程序池(適當的使用):

      好處:可以降低系統對程序或者執行緒建立和銷燬的一個頻率,從而很好的降低系統的開銷;

      弊端:池中執行緒或程序的數量是有上限;

   - 單執行緒 + 非同步協程(推薦):     

         from multiprocessing.dummy import Pool
      #例項化一個執行緒池物件
      pool = Pool(4)
      #將列表中每一個列表元素傳遞給get_page進行處理。
      pool.map(要執行非同步操作的函式,函式的引數)
      pool.close()

      event_loop:事件迴圈,相當於一個無限迴圈,我們可以把一些函式註冊到這個事件迴圈上,當滿足某些條件的時候,函式就會被迴圈執行。

      coroutine:協程物件,我們可以將協程物件註冊到事件迴圈中,他會被事件迴圈呼叫,我們可以使用,async關鍵字來定義一個方法,這個方法在呼叫時不會立即被執行,而是返回一個協程物件。

      task:任務,他是對協程物件的進一步封裝,包含了任務的各個狀態;

      future:代表將來執行或還沒執行的任務,實際上和task沒有本質區別;

      async:定義一個協程;

      await:用來掛起阻塞方法的執行;