请回答一下Java中有几种线程池及实现过程?
請(qǐng)回答一下Java中有幾種線程池及實(shí)現(xiàn)過程?
1、newFixedThreadPool創(chuàng)建一個(gè)指定工作線程數(shù)量的線程池。每當(dāng)提交一個(gè)任務(wù)就創(chuàng)建一個(gè)工作線程,如果工作線程數(shù)量達(dá)到線程池初始的最大數(shù),則將提交的任務(wù)存入到任務(wù)隊(duì)列中。
2、newCachedThreadPool創(chuàng)建一個(gè)可緩存的線程池。這種類型的線程池特點(diǎn)是:
1).工作線程的創(chuàng)建數(shù)量幾乎沒有限制(其實(shí)也有限制的,數(shù)目為Interger. MAX_VALUE), 這樣可靈活的往線程池中添加線程。
2).如果長時(shí)間沒有往線程池中提交任務(wù),即如果工作線程空閑了指定的時(shí)間(默認(rèn)為1分鐘),則該工作線程將自動(dòng)終止。終止后,如果你又提交了新的任務(wù),則線程池重新創(chuàng)建一個(gè)工作線程。
3、newSingleThreadExecutor創(chuàng)建一個(gè)單線程化的Executor,即只創(chuàng)建唯一的工作線程來執(zhí)行任務(wù),如果這個(gè)線程異常結(jié)束,會(huì)有另一個(gè)取代它,保證順序執(zhí)行(我覺得這點(diǎn)是它的特色)。單工作線程最大的特點(diǎn)是可保證順序地執(zhí)行各個(gè)任務(wù),并且在任意給定的時(shí)間不會(huì)有多個(gè)線程是活動(dòng)的 。
4、newScheduleThreadPool創(chuàng)建一個(gè)定長的線程池,而且支持定時(shí)的以及周期性的任務(wù)執(zhí)行,類似于Timer。
總結(jié)
以上是生活随笔為你收集整理的请回答一下Java中有几种线程池及实现过程?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请解释一下Java多线程回调是什么意思?
- 下一篇: 请简短说明一下你对AQS的理解