更新時間:2020-03-25 16:15:35 來源:動力節點 瀏覽2020次
當前Java提供的多線程編程中類,主要包括:
Executor,Executors,ExecutorService,ScheduledExecutorService,AbstractExecutorService等。
本文簡要的對其作用做個介紹,因為每個類和API的應用,都要花時間認真學習和研究,這里只做個導引介紹,暫不做應用詳解。
導引
系統啟動一個新線程的成本是比較高的,因為涉及與操作系統交互。使用線程池可以很好地提高性能,尤其是當程序中需要創建大量生存期很短的線程時,更應該考慮使用線程池。線程池在系統啟動時即創建大量空閑的線程,程序將一個Runnable對象或Callable對象傳給線程池,線程池就會啟動一個線程來執行它們的run()或call()方法,當run()或call()方法執行結束后,該線程并不會死亡,而是再次返回線程池中成為空閑狀態,等待執行下一個Runnable對象的run()或call()方法。
線程池也可以有效控制系統中并發線程的數量,當系統中包含大量并發線程時,會導致系統性能劇烈下降,甚至導致JVM崩潰,而線程池的最大線程數參數可以控制系統中并發線程數不超過此數。
Java線程池(JDK5+)
Java5內建線程池,新增了Executors工廠類來產生線程池,該工廠類包含如下幾個靜態工廠方法來創建線程池。
ExecutorServicenewCachedThreadPool()創建一個具有緩沖功能的線程池
ExecutorServicenewFixedThreadPool(intn)創建一個可重用的,具有固定線程數的線程池
ExecutorServicenewSingleThreadExecutor()創建一個只有單線程的線程池,與newFixedThreadPool(1)相同
ScheduledExecutorServicenewScheduledThreadPool(intcorePoolSize)創建一個具有指定線程數的線程池,它可以在指定延遲后執行線程任務。
ScheduledExecutorServicenewSingleThreadScheduledExecutor()創建只有一個線程數的線程池,它可以在指定延遲后執行線程任務。
ExecutorService代表盡快執行線程的線程池(只要線程池中有空閑的線程池,就立刻執行線程任務)。
ScheduledExecutorService代表可在指定延遲后或周期性地執行線程任務的線程池。
以上就是動力節點java培訓機構的小編針對“Java基礎學習:java多線程編程”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習