1. 程式人生 > 其它 >執行緒協作-Runnable執行緒池

執行緒協作-Runnable執行緒池

背景:經常建立和銷燬、使用量特別大的資源,比如併發情況下的執行緒,對效能影響很大。
思路:提前建立好多個執行緒,放入執行緒池中,使用時直接獲取,使用完放回池中。可以避免頻繁建立銷燬、實現重複利用。類似生活中的公共交通工具。
好處:
提高響應速度(減少了建立新執行緒的時間)
降低資源消耗(重複利用執行緒池中執行緒,不需要每次都建立)便於執行緒管理
corePoolSize:核心池的大小 
maximumPoolSize:最大執行緒數 keepAliveTime:執行緒沒有任務時最多保持多長時間後會終止
JDK 5.0起提供了執行緒池相關API:ExecutorService和 Executors ExecutorService:真正的執行緒池介面。常見子類ThreadPoolExecutor
void execute(Runnable command):執行任務/命令,沒有返回值,一般用來執 行Runnable <T> Future<T> submit(Callable<T> task):執行任務,有返回值,一般又來執行 Callable void shutdown():關閉連線池 Executors:工具類、執行緒池的工廠類,用於建立並返回不同型別的執行緒池
//測試執行緒池

public class Main {
    public static void main(String[] args) {
        //1.建立服務,建立執行緒池
        //newFixedThreadPool :引數為:執行緒池的大小
ExecutorService service=Executors.newFixedThreadPool(10);//設定執行緒池小為10 //把執行緒放到執行緒池裡 //2.執行 service.execute(new MyThread()); service.execute(new MyThread()); service.execute(new MyThread()); service.execute(new MyThread()); //3.關閉連結 service.shutdown(); } }
class MyThread implements Runnable{ public void run(){ for (int i=0;i<100 ;i++ ){ System.out.println(Thread.currentThread().getName()+i); } } }