
線程池就是一個(gè)可以復(fù)用線程的技術(shù)。在沒有線程池時(shí),用戶每發(fā)起一個(gè)請求,后臺就創(chuàng)建一個(gè)新線程來處理,下次新任務(wù)來后又繼續(xù)創(chuàng)建新線程。而創(chuàng)建新線程的開銷是很大的,會嚴(yán)重影響系統(tǒng)性能。
2. 創(chuàng)建線程池
什么時(shí)候創(chuàng)建新線程: 新任務(wù)提交時(shí)核心線程都在忙,任務(wù)隊(duì)列也滿了,并且還可以創(chuàng)建臨時(shí)線程,此時(shí)才會創(chuàng)建臨時(shí)線程。
什么時(shí)候開始拒絕任務(wù): 核心線程和臨時(shí)線程都在忙,任務(wù)隊(duì)列也滿了,新任務(wù)進(jìn)來的時(shí)候才會開始任務(wù)拒絕。
public class ThreadPoolDemo {public static void main(String[] args) {//1、創(chuàng)建線程池對象
ExecutorService pool = new ThreadPoolExecutor(3, 5, 6,
TimeUnit.SECONDS, new ArrayBlockingQueue<>(5), Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
//AbortPolicy():丟棄任務(wù)并拋出RejectedException異常,是默認(rèn)策略。
//DiscardPolicy():丟棄任務(wù)但是不拋出i長,不推薦的做法。
//DiscardOldestPolicy():拋棄隊(duì)列中等待最久的任務(wù),然后把當(dāng)前任務(wù)加入隊(duì)列中。
//CallerRunsPolicy():由主線程負(fù)責(zé)調(diào)用任務(wù)的run()方法從而跳過線程池直接執(zhí)行。
//2、創(chuàng)建任務(wù)
Runnable target = new MyRunnable();
//3、給線程池增加任務(wù)
pool.execute(target);
pool.execute(target);
pool.execute(target);
//占滿五個(gè)隊(duì)列
pool.execute(target);
pool.execute(target);
pool.execute(target);
pool.execute(target);
pool.execute(target);
//開始創(chuàng)建臨時(shí)線程
pool.execute(target);
pool.execute(target);
//超過等待(大線程數(shù)+大等待隊(duì)列數(shù)),開始拒絕
//pool.execute(target);
//關(guān)閉線程池(開發(fā)中一般不使用)
pool.shutdown();//等待全部任務(wù)執(zhí)行完畢之后再關(guān)閉
pool.shutdownNow();//立即關(guān)閉,即使任務(wù)沒有完成,丟失任務(wù)!
}
}2.1.2 使用Callable提交任務(wù)//使用線程池對象的submit()方法提交Callable任務(wù),并用FutureTask的父類接收對象
Futuref1 = pool.submit(new MyCallable(100));
//輸出任務(wù)執(zhí)行后的返回結(jié)果
System.out.println(f1.get()); 2.2 Executors創(chuàng)建線程池大型并發(fā)系統(tǒng)環(huán)境中使用Executors如果不注意可能會出現(xiàn)系統(tǒng)風(fēng)險(xiǎn)。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享題目:Java【線程池】-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.chinadenli.net/article20/dcdgjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、響應(yīng)式網(wǎng)站、動態(tài)網(wǎng)站、電子商務(wù)、搜索引擎優(yōu)化、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容