四種線程池 為什么要使用線程池?
為什么要使用線程池?1. 減少創(chuàng)建和銷(xiāo)毀線程的數(shù)量,每個(gè)工作線程都可以重用,并且可以執(zhí)行多個(gè)任務(wù)。2. 您可以根據(jù)系統(tǒng)的承載能力來(lái)調(diào)整線程池中的工作線線程數(shù),以防止服務(wù)器因?yàn)橄奶鄡?nèi)存而疲憊不堪(每
為什么要使用線程池?
1. 減少創(chuàng)建和銷(xiāo)毀線程的數(shù)量,每個(gè)工作線程都可以重用,并且可以執(zhí)行多個(gè)任務(wù)。
2. 您可以根據(jù)系統(tǒng)的承載能力來(lái)調(diào)整線程池中的工作線線程數(shù),以防止服務(wù)器因?yàn)橄奶鄡?nèi)存而疲憊不堪(每個(gè)線程大約需要1MB內(nèi)存,打開(kāi)的線程越多,消耗的內(nèi)存就越多,最后服務(wù)器崩潰)。
Java線程池的頂層接口是executor,但嚴(yán)格來(lái)說(shuō),executor不是線程池,而是執(zhí)行線程的工具。真正的線程池接口是executorservice。
java什么是線程池及為什么要使用線程池?
創(chuàng)建線程需要昂貴的資源和時(shí)間。如果一個(gè)任務(wù)來(lái)創(chuàng)建一個(gè)線程,響應(yīng)時(shí)間會(huì)更長(zhǎng),并且一個(gè)進(jìn)程可以創(chuàng)建的線程數(shù)是有限的。為了避免這些問(wèn)題,當(dāng)程序啟動(dòng)時(shí),會(huì)創(chuàng)建幾個(gè)線程來(lái)響應(yīng)處理。它們稱(chēng)為線程池,其中的線程稱(chēng)為工作線程。從JDK1.5開(kāi)始,javaapi提供了一個(gè)executor框架,允許您創(chuàng)建不同的線程池。例如,單個(gè)線程池,一次處理一個(gè)任務(wù);固定數(shù)量的線程池或緩存線程池(適用于許多短期任務(wù)的可擴(kuò)展線程池)。