流暢的Python讀書筆記 --- 第十七章 使用future處理併發

近期在讀「流暢的Python」這本書,想把本身的讀書筆記分享給你們,但願能幫到也對這本書感興趣可是沒時間看的各位。(文章中大部分的話和圖片摘錄總結自「流暢的Python」一書,以及python官方網站)python

章節概述::concurrent.futures模塊
章節結構:安全

  • 使用concurrent.futures
  • future組件
  • 阻塞性I/O和GIL
  • future模塊啓動進程

內容摘要:併發

  • 使用concurrent.futures

future模塊經過ThreadPoolExecutor和ProcessPoolExecutor類實現的接口在不一樣的線程和進程中執行可調用的對象。這兩個對象在內部維護着一個工做線程或者進程池,以及要執行的任務隊列框架

  • future組件 (concurrent.futures.Future)

這個類的實例由併發框架進行建立,表示將來發生的某件要執行的事件。Future對象有done方法,它會返回布爾值,致命future連接的可調用對象是否已經執行。若是執行完畢,會通知客戶端(經過add_done_callback)。函數

  • 阻塞性I/O和GIL

GIL:全局解釋器鎖,由於CPython解釋器不是線程安全,因此GIL實現了一次只容許一個線程執行Python字節碼,所以一個Python進程一般不能同時使用多個CPU核心。
Python中全部I/O阻塞函數都會釋放GIL,容許其餘線程運行。網站

相關文章
相關標籤/搜索