1. 程式人生 > >使用java自帶執行緒池

使用java自帶執行緒池

 

java提供自帶的執行緒池,而不需要自己去開發一個自定義執行緒池了。

執行緒池類 ThreadPoolExecutor在包java.util.concurrent下

  ThreadPoolExecutor threadPool= new ThreadPoolExecutor(10, 15, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());  

第一個引數10 表示這個執行緒池初始化了10個執行緒在裡面工作
第二個引數15 表示如果10個執行緒不夠用了,就會自動增加到最多15個執行緒
第三個引數60 結合第四個引數TimeUnit.SECONDS,表示經過60秒,多出來的執行緒還沒有接到活兒,就會回收,最後保持池子裡就10個
第四個引數TimeUnit.SECONDS 如上
第五個引數 new LinkedBlockingQueue() 用來放任務的集合

execute方法用於新增新的任務
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package  multiplethread;     import  java.util.concurrent.LinkedBlockingQueue; import
  java.util.concurrent.ThreadPoolExecutor; import  java.util.concurrent.TimeUnit;     public  class  TestThread {          public  static  void  main(String[] args)  throws  InterruptedException {                      ThreadPoolExecutor threadPool=  new  ThreadPoolExecutor( 10 15 60 , TimeUnit.SECONDS,  new LinkedBlockingQueue<Runnable>());                      threadPool.execute( new  Runnable(){                  @Override              public  void  run() {                  // TODO Auto-generated method stub                  System.out.println( "任務1" );              }                          });          }     }