問題:
執行緒是寶貴的記憶體資源,單個執行緒約佔1mb空間,過多分配易造成記憶體溢位
頻繁的建立及銷毀執行緒會增加虛擬機器**頻率、資源開銷,造成程式效能下降
執行緒池:
執行緒容器,可設定執行緒分配的數量上限
將預先建立的執行緒物件存入池中,並重用執行緒池中的執行緒物件
避免頻繁的建立和銷毀
將任務提交給執行緒池,由執行緒池分配執行緒、執行任務,並在當前任務結束後復用執行緒
executor:執行緒池的根介面,裡面只有乙個方法:execute()
executorservice :包含管理執行緒池的一些方法:submit 、shutdown
executorservice常用的兩個類 threadpoolexecutor 和 scheduledthreadpoolexecutor,但是由於引數過多,不用他們建立
executors :建立執行緒池的工具類
1)★ 建立固定執行緒個數執行緒池
2)★ 建立快取執行緒池,由任務的多少來決定(不固定執行緒個數)
3)建立單執行緒池
4)建立排程執行緒池。排程:週期、定時執行
例子一:建立乙個固定大小的執行緒池
建立乙個不用指定固定大小的執行緒池
建立單執行緒池
執行緒池的概念
單位時間內必須處理數目巨大的連線請求,但處理時間卻相對較短。傳統多執行緒方案中,一旦接受到請求之後,即建立乙個新的執行緒,由該執行緒執行任務。任務執行完畢後,執行緒退出。這就是 即時建立,即時銷毀的策略。儘管與建立程序相比,建立執行緒的時間已經大大的縮短,但是如果提交給執行緒的任務執行時間 很短,而...
連線池,執行緒池 概念
資料庫連線池 引數介紹 name 表示你的連線池的名稱也就是你要訪問連線池的位址 auth 是連線池管理權屬性,container表示容器管理 type 是物件的型別 driverclassname 是資料庫驅動的名稱 url 是資料庫的位址 username 是登陸資料庫的使用者名稱 passwo...
多工 執行緒池 攜程池
多工 執行緒池 from queue import queue from multiprocessing.dummy import pool 資料佇列 self.data queue queue self.pool pool def run more task self,func,count 1 把...