使用java自帶執行緒池
阿新 • • 發佈:2018-12-29
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"
);
}
});
}
}
|