執行緒池原理--總索引
阿新 • • 發佈:2018-11-10
文章目錄
執行緒池原理–總索引
執行器Executor
- 執行緒池原理–執行器Executor
- 執行緒池原理–執行器ExecutorService
- 執行緒池原理–執行器AbstractExecutorService
- 執行緒池原理–執行器ThreadPoolExecutor
- 執行緒池原理–工廠類Executors
拒絕策略
任務佇列BlockingQueue
在不使用執行緒池的時候,我們都是手動建立一個執行緒並啟動。
public MyThread extends Thread{
public void run(){
//do something
.....
}
public static void main(String[] args){
MyThread thread = new MyThread();
thread.start();
}
}
因為建立執行緒和銷燬執行緒會消耗系統的資源,並不是一種很好的方式去實現多執行緒,使用執行緒池比較好。
package com.jt.thread.demo05;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class MyRunnable implements Runnable {
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(Thread.currentThread().getName() + ":" + x);
}
}
}
public class ExecutorServiceDemo {
public static void main(String[] args) {
// 建立一個執行緒池物件,控制要建立幾個執行緒物件。
// public static ExecutorService newFixedThreadPool(int nThreads)
ExecutorService pool = Executors.newFixedThreadPool(2);
// 可以執行Runnable物件或者Callable物件代表的執行緒
pool.submit(new MyRunnable());
pool.submit(new MyRunnable());
//結束執行緒池
pool.shutdown();
}
}
使用執行緒池的好處:
-
第一:降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷燬造成的消耗。
-
第二:提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。
-
第三:提高執行緒的可管理性。執行緒是稀缺資源,如果無限制的建立,不僅會消耗系統資源,還會降低系統的穩定性,使用執行緒池可以進行統一的分配,調優和監控。**