實際專案中(需要非常多的執行緒),建立跟銷毀執行緒的開銷較大,又會用到較多的執行緒,不妨在建立不用之後,將其儲存起來,待使用時再呼叫
這就引入了執行緒池的概念
executorservice es = executors.newfixedthreadpool();//建立新的執行緒池物件,引數是int(表示建立的同時新建多少個執行緒)並用executors的子類接收
es.submit(r);//引數為runnable實現類
由於runnable介面中的run()方法不能拋異常也沒有返回值,所以引入了callable介面(用法跟runnable一樣)
t call(){}//可拋異常也有返回值,若要傳入引數,則可以將引數傳入callable的實現類的構造方法中 用法跟run()一樣
執行緒池 基礎
概念 乙個執行緒的宣告週期中包含了三個時間段,1是建立執行緒的時間 t1,2是執行緒執行任務所要花費的時間 t2,3是執行緒銷毀的時間 t3,執行緒池主要技術點就是縮短或調整t1和t3的時間,從而提高伺服器的效能。因為它把t1和t3安排在程式啟動或者伺服器空閒的時間段中,這樣就不會有t1和t3的開銷...
執行緒池基礎
1 重用執行緒,避免執行緒建立和消耗帶來的效能消耗 2 控制線程池的最大併發數,避免執行緒之間搶系統資源而導致的阻塞現象。3 對執行緒管理,提供定時執行等功能。1 executor介面 public inte ce executor將任務提交和執行解耦,引數傳入runnable 任務 通過execu...
執行緒池的基礎使用
執行緒池threadpoolexecutor 自定義執行緒池 執行緒池其實就是一種多執行緒處理形式,處理過程中可以將任務新增到佇列中,然後在建立執行緒後自動啟動這些任務,這裡的執行緒就是我們之前學過的執行緒,這裡的任務就是我們之前學過的實現runnable介面或者callable介面的例項物件。使用...