JUC之執行緒池

2021-10-08 16:45:52 字數 1212 閱讀 7698

一、定義:提供了乙個執行緒佇列,佇列中儲存著所有等待的執行緒。

作用:避免了建立與銷毀額外開銷,提高了相應的速度。

二、執行緒池的體系結構

|–**executorservice 子介面:執行緒池的主要介面

|–threadpoolexecutor 實線類

|–scheduledexecutorservice 子介面:負責執行緒的調

|–scheduledthreadpoolexecutor : 繼承threadpoolexecutor,實現scheduledthreadpoolexecutor

三、工具類:executors

executorservice newfixedthreadpool():建立固定大小的執行緒池。

executorservice newcachedthreadpool():快取執行緒池,執行緒池的數量不固定,可以根據需求自動的更改數量。

executorservice newsinglethreadexecutor():建立單個執行緒池,執行緒池中只有乙個執行緒。

scheduledexecutorservice newschedulethreadpool():建立固定大小的執行緒,可以延遲定時執行任務。

四、執行緒池案例**:

public class testthreadpool

return sum;

}});

list.add(future);

}for (futurefuture : list)

pool.shutdown();

//方式一:

threadpooldemo td = new threadpooldemo();

//2、為執行緒池中的執行緒分配任務

for (int i = 0;i<=10;i++)

//3、關閉執行緒池

pool.shutdown();//平和的方式關閉執行緒池

不管執行緒是否結束,都會立即結束

}class threadpooldemo implements runnable

}固定執行緒,延遲執行**:

public class testscheduledthreadpool

},3, timeunit.seconds);//設定執行緒間隔多久執行一次,如每3s一執行

system.out.println(result.get());

}pool.shutdown();//關閉執行緒池

}

J U C執行緒池

執行緒的建立和切換都是代價比較大的。所以,我們需要有乙個好的方案能做到執行緒的復用,這就涉及到乙個概念 執行緒池。合理的使用執行緒池能夠帶來3個很明顯的好處 降低資源消耗 通過重用已經建立的執行緒來降低執行緒建立和銷毀的消耗 提高響應速度 任務到達時不需要等待執行緒建立就可以立即執行。提高執行緒的可...

j u c執行緒 執行緒池

final void runworker worker w catch runtimeexception x catch error x catch throwable x finally finally completedabruptly false finally private runnabl...

JUC 執行緒池數量

去乙個網頁抓資料儲存到資料庫中,這個過程也就1秒中吧 執行緒池fixedthreadpool配製多少合適?如果是cpu密集型應用,則執行緒池大小設定為n 1 n為cpu的核數 如果是io密集型應用,則執行緒池大小設定為2n 1 這裡去乙個網頁抓資料 需要建立http請求響 io 應後拿到資料,然後再...