版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、java 四種線程池的簡單介紹在傳統(tǒng)的 cs 或者 bs 模式中,一個線程或者一個進(jìn)程負(fù)責(zé)一個請求,一個請求使用一個 socket 來進(jìn)行傳輸, 這樣的模式在低并發(fā)量的情況下還是可行的,但是用戶量一大的話就會導(dǎo)致系統(tǒng)資源大量被占用,影響服 務(wù)器的性能。所以,在 java 中有一種新的請求反饋機(jī)制叫做線程池,(java 培訓(xùn) 就到源碼時代打個比方,我們每天都 要去食堂吃飯,如果為每個人提供一個碗 筷子 是不是開銷比較大而且利用率不高,線程池的作用就相當(dāng) 于 100個人 在保證最多并發(fā)量的同時盡可能少提供碗筷的數(shù)量,比如說最多 50個人同時吃飯,那么就會 準(zhǔn)備 50雙碗筷 用掉了以后洗了繼續(xù)用,這
2、樣就可以節(jié)約大量的資源和提高利用率, java 中提供了 4中線 程池模型。(1 newCachedThreadPool創(chuàng)建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。 示例代碼如下:Java 代碼package test;public class ThreadPoolExecutorTest public static void main(String args ExecutorService cachedThreadPool = Executors.newCachedThreadPool(;for (int i = 0; i < 10;
3、i+ final int index = i;try Thread.sleep(index * 1000; catch (InterruptedException e e.printStackTrace(;cachedThreadPool.execute(new Runnable( public void run( ;線程池為無限大, 當(dāng)執(zhí)行第二個任務(wù)時第一個任務(wù)已經(jīng)完成, (java 培訓(xùn) 就到源碼時代 會復(fù)用執(zhí)行第一個 任務(wù)的線程,而不用每次新建線程。(2 newFixedThreadPool創(chuàng)建一個定長線程池,可控制線程最大并發(fā)數(shù),超出的線程會在隊列中等待。示例代碼如下:Java 代碼p
4、ackage test;public class ThreadPoolExecutorTest public static void main(String args ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3;for (int i = 0; i < 10; i+ final int index = i;fixedThreadPool.execute(new Runnable( public void run( try Thread.sleep(2000; catch (InterruptedExcep
5、tion e e.printStackTrace(;因為線程池大小為 3,每個任務(wù)輸出 index 后 sleep 2秒,所以每兩秒打印 3個數(shù)字。定長線程池的大小最好根據(jù)系統(tǒng)資源進(jìn)行設(shè)置。如 Runtime.getRuntime(.availableProcessors(3 newScheduledThreadPool創(chuàng)建一個定長線程池,支持定時及周期性任務(wù)執(zhí)行。延遲執(zhí)行示例代碼如下:Java 代碼package test;public class ThreadPoolExecutorTest public static void main(String args ScheduledExec
6、utorService scheduledThreadPool = Executors.newScheduledThreadPool(5; scheduledThreadPool.schedule(new Runnable( public void run( , 3, TimeUnit.SECONDS;表示延遲 3秒執(zhí)行。定期執(zhí)行示例代碼如下:Java 代碼package test;public class ThreadPoolExecutorTest public static void main(String args ScheduledExecutorService scheduledT
7、hreadPool = Executors.newScheduledThreadPool(5; scheduledThreadPool.scheduleAtFixedRate(new Runnable( public void run( , 1, 3, TimeUnit.SECONDS;表示延遲 1秒后每 3秒執(zhí)行一次。(4 newSingleThreadExecutor創(chuàng)建一個單線程化的線程池,它只會用唯一的工作線程來執(zhí)行任務(wù),保證所有任務(wù)按照指定順序 (FIFO, LIFO, 優(yōu)先級 執(zhí)行。示例代碼如下:Java 代碼package test;public class ThreadPool
8、ExecutorTest public static void main(String args ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor(;for (int i = 0; i < 10; i+ final int index = i;singleThreadExecutor.execute(new Runnable( public void run( try Thread.sleep(2000; catch (InterruptedException e e.printStackTr
9、ace(;結(jié)果依次輸出,相當(dāng)于順序執(zhí)行各個任務(wù)。運(yùn)行程序做稍微修改:Java 代碼package test;public class ThreadPoolExecutorTest public static void main(String args ExecutorService singleThreadExecutor = Executors.newCachedThreadPool(;for (int i = 0; i < 100; i+ final int index = i;singleThreadExecutor.execute(new Runnable( public void run( try while(true Thread.sleep(10 * 1000; catch (InterruptedException e e.printStackTrace(;try Thread.sleep(500; catch (InterruptedExcept
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 度假村修繕勞務(wù)合同
- 舊房翻新項目合同范本
- 高端服裝物流承運(yùn)協(xié)議
- 創(chuàng)意辦公區(qū)設(shè)計合同樣本
- 創(chuàng)意產(chǎn)業(yè)園入駐
- 環(huán)保設(shè)備液堿配送服務(wù)協(xié)議
- 農(nóng)產(chǎn)品運(yùn)輸保障協(xié)議
- 家電維修服務(wù)居間合同
- 家具租賃運(yùn)輸服務(wù)協(xié)議樣本
- 果蔬銷售居間委托合同
- 2025屆高考語文一輪復(fù)習(xí):文言文概括和分析 課件
- MOOC 空中機(jī)器人-浙江大學(xué) 中國大學(xué)慕課答案
- 英語四級單詞4500
- 心理危機(jī)干預(yù)的理論與實踐
- 導(dǎo)盲杖的設(shè)計與制作論文
- 火針操作規(guī)范
- 2019第五版新版PFMEA 注塑實例
- 專題講座資料(2021-2022年)二甲評審標(biāo)準(zhǔn)與評價細(xì)則收藏1213
- 我國育成的當(dāng)前有影響的一些玉米品種
- 鋼箱梁施工方案2篇
- 鉻鉬鋼壓力容器的設(shè)計、制造與檢驗分析
評論
0/150
提交評論