欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java【線程池】-創(chuàng)新互聯(lián)

文章目錄
  • 1. 什么是線程池
  • 2. 創(chuàng)建線程池
    • 2.1 ExecutorService
      • 2.1.1ThreadPoolExecutor創(chuàng)建線程池
      • 2.1.2 使用Callable提交任務(wù)
    • 2.2 Executors創(chuàng)建線程池

創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為泗洪企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),泗洪網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。1. 什么是線程池

線程池就是一個(gè)可以復(fù)用線程的技術(shù)。在沒有線程池時(shí),用戶每發(fā)起一個(gè)請求,后臺就創(chuàng)建一個(gè)新線程來處理,下次新任務(wù)來后又繼續(xù)創(chuàng)建新線程。而創(chuàng)建新線程的開銷是很大的,會嚴(yán)重影響系統(tǒng)性能。

2. 創(chuàng)建線程池
  • JDK5.0起提供了代表線程池的接口:ExecutorService。
  • 方式一:使用ExecutorService的實(shí)現(xiàn)類ThreadPoolExecutor自創(chuàng)建一個(gè)線程池對象。
  • 方式二:使用Executors(線程池的工具類)調(diào)用方法返回不同特點(diǎn)的線程池對象。
2.1 ExecutorService 2.1.1ThreadPoolExecutor創(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)

成都做網(wǎng)站