線程池的使用

線程池的效率非常高,所以一切線程操作最好都是以線程池的方式進行。

常見的線程池有:

①newSingleThreadExecutor
單個線程的線程池,即線程池中每次只有一個線程工作,單線程串行執行任務
②newFixedThreadExecutor
固定數量的線程池,沒提交一個任務就是一個線程,直到達到線程池的最大數量,然後後面進入等待隊列直到前面的任務完成才繼續執行
③newScheduleThreadExecutor
大小無限制的線程池,支持定時和週期性的執行線程
④newCacheThreadExecutor
可緩存線程池,當線程池大小超過了處理任務所需的線程,那麼就會回收部分空閒的線程,當有任務來時,又智能的添加新線程來執行。

下面是一些線程池的簡單用法:

1、先創建線程池

2、創建線程對象

3、提交線程對象

4、銷燬線程池

[java] view plain copy
  1. public class ThreadPool {  
  2.     public static void main(String[] args) {  
  3.         // 利用線程池創建工廠類拿到線程池對象  
  4.         ExecutorService executorService = Executors.newFixedThreadPool(6);  
  5.   
  6.         // 創建線程對象  
  7.         Thread thread01 = new Thread(new Runnable() {  
  8.   
  9.             @Override  
  10.             public void run() {  
  11.                 System.out.println("thread01...");  
  12.             }  
  13.         });  
  14.         Thread thread02 = new Thread(new Runnable() {  
  15.   
  16.             @Override  
  17.             public void run() {  
  18.                 System.out.println("thread02...");  
  19.             }  
  20.         });  
  21.   
  22.         // 將線程對象添加到線程池中  
  23.         executorService.submit(thread01);  
  24.         executorService.submit(thread02);  
  25.           
  26.         //銷燬線程池  
  27.         executorService.shutdown();  
  28.   
  29.     }  
  30. }  
想使用其他的線程池的也可以參照API,線程池工廠類Executors類可以產生多種線程池。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章