線程池相關

1. 爲何須要建立線程池?緩存

答:建立和銷燬對象是很費時間的,由於建立一個對象要獲取內存資源或者其它更多資源,因此提升服務程序效率的一個手段就是儘量減小建立和銷燬對象的次數,特別是一些很耗資源的對象建立和銷燬。服務器

2. 如何建立線程池?工具

答:工具類Executors面提供了一些靜態工廠方法,經常使用的有:性能

  • ​​​​​​​​​​​​​​newSingleThreadExecutor  只有一個線程,若異常結束,會有一個新的線程替代它,此線程池保證全部任務的執行順序按照任務的提交順序執行
  • newFixedThreadPool:建立固定大小的線程池。若異常結束一個,會建立新的線程達到固定數量。線程池的大小一旦達到最大值就會保持不變。
  • newCachedThreadPool:建立一個可緩存的線程池。任務須要多少線程就建立多少個線程,多餘的線程會被回收。大小取決於操做系統(或者說JVM)可以建立的最大線程大小。
  • newScheduledThreadPool:建立一個大小無限的線程池。此線程池支持定時以及週期性執行任務的需求。

總結:若是但願在服務器上使用線程池,強烈建議使用newFixedThreadPool方法來建立線程池,這樣能得到更好的性能spa

相關文章
相關標籤/搜索