0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CallerRunsPolicy拒絕策略的相關(guān)知識(shí)

Android編程精選 ? 來(lái)源:CSDN博客 ? 作者:打不死Gin ? 2021-09-29 14:20 ? 次閱讀

來(lái)源丨blog.csdn.net/dabusiGin/article/details/105323796

在學(xué)習(xí)CallerRunsPolicy拒絕策略的時(shí)候,搜索了很多相關(guān)的知識(shí),其他博主的描述是這樣的:

第1種:

d023ed82-205b-11ec-82a8-dac502259ad0.png

第2種:

d03abec2-205b-11ec-82a8-dac502259ad0.png

第3種:

d04cab5a-205b-11ec-82a8-dac502259ad0.png

第4種:JDK文檔(漢化版)

d09a2506-205b-11ec-82a8-dac502259ad0.png

他們的描述讓我看的很懵逼,特別是第3種,仔細(xì)看他的測(cè)試代碼,并沒(méi)有用CallerRunsPolicy,而是用的AbortPolicy拒絕策略。。。。這是一篇高瀏覽量的博文,而且多人轉(zhuǎn)載。

其中上面幾種情況中寫(xiě)到的“execute方法的調(diào)用線程”、“調(diào)用者線程”、“execute函數(shù)的上層線程”、“execute本身的線程”就是指的主線程,舉個(gè)例子如下圖所示,主線程就是平時(shí)執(zhí)行main方法中代碼的線程。

d0b15028-205b-11ec-82a8-dac502259ad0.png

再通過(guò)一個(gè)例子詳細(xì)說(shuō)明:

class MyTask implements Runnable {

private String id;

public MyTask(String id) {

this.id = id;

}

public void run() {

System.out.println(id);

}

}

public class RejectPolicy {

public static void main(String[] args) {

ExecutorService es = new ThreadPoolExecutor(2, 2, 0L, TimeUnit.MILLISECONDS,

new ArrayBlockingQueue《Runnable》(3), Executors.defaultThreadFactory(),

new ThreadPoolExecutor.CallerRunsPolicy());

MyTask t1 = new MyTask(“id:1”);

MyTask t2 = new MyTask(“id:2”);

MyTask t3 = new MyTask(“id:3”);

MyTask t4 = new MyTask(“id:4”);

MyTask t5 = new MyTask(“id:5”);

MyTask t6 = new MyTask(“id:6”);

MyTask t7 = new MyTask(“id:7”);

es.execute(t1);

es.execute(t2);

es.execute(t3);

es.execute(t4);

es.execute(t5);

es.execute(t6);

es.execute(t7);

}

}

這里使用主要參數(shù)是:核心線程數(shù)為2、最大線程數(shù)為2、有界隊(duì)列(容量為3)、默認(rèn)線程工廠、CallerRunsPolicy拒絕策略。

運(yùn)行結(jié)果如下:

id:1

id:2

id:3

id:4

id:6

id:5

id:7

可以看到所有的任務(wù)都執(zhí)行了,沒(méi)有真正意義上被拒絕的。

學(xué)習(xí)資料Java進(jìn)階視頻資源

代碼中定義了核心線程數(shù)為2的線程池,一共有7個(gè)任務(wù)要執(zhí)行,其中2個(gè)任務(wù)創(chuàng)建線程執(zhí)行去了,3個(gè)任務(wù)放入了任務(wù)隊(duì)列(workQueue)。

當(dāng)提交到第6個(gè)任務(wù)的時(shí)候,會(huì)觸發(fā)拒絕策略,在這里我們配置了CallerRunsPolicy策略,主線程直接執(zhí)行第六個(gè)任務(wù)去了,不再向下執(zhí)行main方法中的es.execute(t7)這段代碼。

也就是說(shuō),在本程序中最多會(huì)有3個(gè)任務(wù)在執(zhí)行,3個(gè)在等待。由此限制了線程池的等待任務(wù)數(shù)與執(zhí)行線程數(shù)。所以JDK文檔才會(huì)說(shuō):“這提供了一個(gè)簡(jiǎn)單的反饋控制機(jī)制,將降低新任務(wù)提交的速度”。

d0fc715c-205b-11ec-82a8-dac502259ad0.png

我的一點(diǎn)個(gè)人理解,希望能有助理解。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理程序
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5445
  • 線程池
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    6868

原文標(biāo)題:大多數(shù)人不知道的:線程池CallerRunsPolicy()拒絕策略

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    設(shè)計(jì)模式-策略模式

    作者:京東工業(yè) 孫磊 一、概念 策略模式(Strategy Pattern)也稱為(Policy Parttern)。 它定義了算法家族,分別封裝起來(lái),讓它們之間可以互相替換,此模式讓算法的變換
    的頭像 發(fā)表于 01-08 13:47 ?69次閱讀
    設(shè)計(jì)模式-<b class='flag-5'>策略</b>模式

    一文解析半導(dǎo)體產(chǎn)業(yè)鏈條以及相關(guān)知識(shí)

    先來(lái)了解一下半導(dǎo)體產(chǎn)業(yè)鏈條以及相關(guān)知識(shí),看完傳統(tǒng)封裝與先進(jìn)封裝對(duì)比后再來(lái)了解封裝裝備,最后看看核心封裝設(shè)備的梳理。 下圖為工藝對(duì)比 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    的頭像 發(fā)表于 11-18 11:23 ?270次閱讀
    一文解析半導(dǎo)體產(chǎn)業(yè)鏈條以及<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>

    一文解析半導(dǎo)體產(chǎn)業(yè)鏈條以及相關(guān)知識(shí)

    先來(lái)了解一下半導(dǎo)體產(chǎn)業(yè)鏈條以及相關(guān)知識(shí),看完傳統(tǒng)封裝與先進(jìn)封裝對(duì)比后再來(lái)了解封裝裝備,最后看看核心封裝設(shè)備的梳理。 下圖為工藝對(duì)比 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    的頭像 發(fā)表于 11-18 11:23 ?251次閱讀
    一文解析半導(dǎo)體產(chǎn)業(yè)鏈條以及<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>

    接口測(cè)試?yán)碚?、疑?wèn)收錄與擴(kuò)展相關(guān)知識(shí)點(diǎn)

    本文章使用王者榮耀游戲接口、企業(yè)微信接口的展示結(jié)合理論知識(shí),講解什么是接口測(cè)試、接口測(cè)試?yán)碚?、疑?wèn)收錄與擴(kuò)展相關(guān)知識(shí)點(diǎn)的知識(shí)學(xué)院,快來(lái)一起看看吧~
    的頭像 發(fā)表于 11-15 09:12 ?352次閱讀
    接口測(cè)試?yán)碚?、疑?wèn)收錄與擴(kuò)展<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>點(diǎn)

    連接器相關(guān)基礎(chǔ)知識(shí)大講解

    最近很多讀者想要補(bǔ)補(bǔ)連接器相關(guān)知識(shí),今天小編就和大家來(lái)探討下連接器的相關(guān)知識(shí)。 以下和大家來(lái)了連接器基礎(chǔ)知識(shí),將從六個(gè)方面和大家分享,想了
    的頭像 發(fā)表于 11-01 11:03 ?401次閱讀

    【技術(shù)分享】CAN總線相關(guān)知識(shí)探討以及Model3C兩路CAN的應(yīng)用

    CAN總線相關(guān)知識(shí),以個(gè)位數(shù)價(jià)格的工業(yè)級(jí)HMI芯片–Model3C為例, 2路CAN的應(yīng)用
    的頭像 發(fā)表于 09-05 10:59 ?600次閱讀
    【技術(shù)分享】CAN總線<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>探討以及Model3C兩路CAN的應(yīng)用

    Wiz拒絕谷歌母公司230億美元收購(gòu)

    網(wǎng)絡(luò)安全領(lǐng)域的創(chuàng)新先鋒Wiz近日宣布了一項(xiàng)令人矚目的決定,毅然拒絕了科技巨頭谷歌母公司Alphabet提出的230億美元收購(gòu)要約。這一決定不僅打破了業(yè)界對(duì)大型并購(gòu)的期待,也彰顯了Wiz對(duì)于獨(dú)立發(fā)展道路的堅(jiān)定信念。
    的頭像 發(fā)表于 08-09 09:35 ?511次閱讀

    LDO輸出電壓紋波的相關(guān)知識(shí)

    統(tǒng)中,電源的穩(wěn)定性和可靠性至關(guān)重要。線性穩(wěn)壓器(LDO)作為一種常用的電源管理器件,其輸出電壓紋波是衡量其性能的重要指標(biāo)之一。本文將詳細(xì)介紹LDO輸出電壓紋波的相關(guān)知識(shí),包括其定義、影響因素、測(cè)量方法以及降低紋波的策略。 LDO
    的頭像 發(fā)表于 07-14 10:08 ?2165次閱讀

    什么是手機(jī)信號(hào)屏蔽器? 手機(jī)信號(hào)屏蔽器:保護(hù)隱私,拒絕干擾

    手機(jī)信號(hào)屏蔽器:保護(hù)隱私,拒絕干擾,助力專注
    的頭像 發(fā)表于 03-12 09:07 ?3463次閱讀
    什么是手機(jī)信號(hào)屏蔽器? 手機(jī)信號(hào)屏蔽器:保護(hù)隱私,<b class='flag-5'>拒絕</b>干擾

    Meta拒絕谷歌合作提議

    近日,科技巨頭Meta拒絕與谷歌母公司Alphabet進(jìn)行合作,原本的計(jì)劃是將Meta的混合現(xiàn)實(shí)頭顯產(chǎn)品Quest搭載谷歌的Android XR平臺(tái)。然而,盡管Meta作出了這一決定,谷歌方面依然保持開(kāi)放態(tài)度,顯示出其在市場(chǎng)競(jìng)爭(zhēng)中的靈活策略。
    的頭像 發(fā)表于 03-06 10:27 ?726次閱讀

    Meta拒絕和谷歌在VR/AR領(lǐng)域合作提議

    Meta拒絕和谷歌在VR/AR領(lǐng)域合作提議 據(jù)外媒報(bào)道,Meta拒絕和谷歌在VR/AR領(lǐng)域合作的提議。 谷歌原本希望通過(guò)合作促成混合現(xiàn)實(shí)頭顯產(chǎn)品Quest 搭載谷歌Android XR 平臺(tái)。但是 Meta CEO扎克伯格似乎有自己的想法,難道元宇宙平臺(tái)依然是扎克伯格的執(zhí)
    的頭像 發(fā)表于 03-02 15:48 ?3069次閱讀

    雕刻主軸相關(guān)知識(shí)的總結(jié)分享!|深圳恒興隆機(jī)電a

    雕刻主軸相關(guān)知識(shí)的總結(jié)分享!|深圳恒興隆機(jī)電雕刻主軸是雕刻機(jī)中的核心部件,負(fù)責(zé)驅(qū)動(dòng)刀具進(jìn)行雕刻、切割和雕刻加工。它是將電能轉(zhuǎn)化為機(jī)械能的關(guān)鍵組件,直接影響到雕刻機(jī)的工作效果和加工質(zhì)量。本文將從
    發(fā)表于 02-26 10:30

    美國(guó)拒絕OpenAI商標(biāo)申請(qǐng)

    美國(guó)專利商標(biāo)局(PTO)再次拒絕了OpenAI將其核心術(shù)語(yǔ)“GPT”注冊(cè)為商標(biāo)的請(qǐng)求。PTO認(rèn)為,GPT(生成式預(yù)訓(xùn)練轉(zhuǎn)換器)作為一個(gè)術(shù)語(yǔ)過(guò)于通用,如果允許OpenAI獨(dú)家使用,可能會(huì)妨礙競(jìng)爭(zhēng)對(duì)手描述自己的產(chǎn)品為GPT。
    的頭像 發(fā)表于 02-18 10:19 ?669次閱讀

    沃達(dá)豐拒絕與Iliad合并意大利業(yè)務(wù)

    法國(guó)電信運(yùn)營(yíng)商Iliad SA近日宣布,沃達(dá)豐已拒絕了其合并兩家公司在意大利業(yè)務(wù)的提議。Iliad最初于2023年12月18日提出這一要約,并隨后提交了進(jìn)一步修訂的提案,旨在將Iliad意大利公司和沃達(dá)豐意大利公司合并為一個(gè)新的實(shí)體。
    的頭像 發(fā)表于 02-02 10:14 ?584次閱讀

    母線保護(hù)相關(guān)知識(shí)分享

    母線保護(hù)相關(guān)知識(shí)分享
    的頭像 發(fā)表于 01-19 10:29 ?584次閱讀
    母線保護(hù)<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>分享