那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CallerRunsPolicy拒絕策略的相關知識

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

來源丨blog.csdn.net/dabusiGin/article/details/105323796

在學習CallerRunsPolicy拒絕策略的時候,搜索了很多相關的知識,其他博主的描述是這樣的:

第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種,仔細看他的測試代碼,并沒有用CallerRunsPolicy,而是用的AbortPolicy拒絕策略。。。。這是一篇高瀏覽量的博文,而且多人轉載。

其中上面幾種情況中寫到的“execute方法的調用線程”、“調用者線程”、“execute函數的上層線程”、“execute本身的線程”就是指的主線程,舉個例子如下圖所示,主線程就是平時執行main方法中代碼的線程。

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

再通過一個例子詳細說明:

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);

}

}

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

運行結果如下:

id:1

id:2

id:3

id:4

id:6

id:5

id:7

可以看到所有的任務都執行了,沒有真正意義上被拒絕的。

學習資料Java進階視頻資源

代碼中定義了核心線程數為2的線程池,一共有7個任務要執行,其中2個任務創建線程執行去了,3個任務放入了任務隊列(workQueue)。

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

也就是說,在本程序中最多會有3個任務在執行,3個在等待。由此限制了線程池的等待任務數與執行線程數。所以JDK文檔才會說:“這提供了一個簡單的反饋控制機制,將降低新任務提交的速度”。

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

我的一點個人理解,希望能有助理解。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理程序
    +關注

    關注

    0

    文章

    3

    瀏覽量

    5446
  • 線程池
    +關注

    關注

    0

    文章

    57

    瀏覽量

    6894

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

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    設計模式-策略模式

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

    一文解析半導體產業鏈條以及相關知識

    先來了解一下半導體產業鏈條以及相關知識,看完傳統封裝與先進封裝對比后再來了解封裝裝備,最后看看核心封裝設備的梳理。 下圖為工藝對比 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    的頭像 發表于 11-18 11:23 ?304次閱讀
    一文解析半導體產業鏈條以及<b class='flag-5'>相關</b><b class='flag-5'>知識</b>

    一文解析半導體產業鏈條以及相關知識

    先來了解一下半導體產業鏈條以及相關知識,看完傳統封裝與先進封裝對比后再來了解封裝裝備,最后看看核心封裝設備的梳理。 下圖為工藝對比 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    的頭像 發表于 11-18 11:23 ?272次閱讀
    一文解析半導體產業鏈條以及<b class='flag-5'>相關</b><b class='flag-5'>知識</b>

    接口測試理論、疑問收錄與擴展相關知識

    本文章使用王者榮耀游戲接口、企業微信接口的展示結合理論知識,講解什么是接口測試、接口測試理論、疑問收錄與擴展相關知識點的知識學院,快來一起看看吧~
    的頭像 發表于 11-15 09:12 ?389次閱讀
    接口測試理論、疑問收錄與擴展<b class='flag-5'>相關</b><b class='flag-5'>知識</b>點

    連接器相關基礎知識大講解

    最近很多讀者想要補補連接器相關知識,今天小編就和大家來探討下連接器的相關知識。 以下和大家來了連接器基礎知識,將從六個方面和大家分享,想了
    的頭像 發表于 11-01 11:03 ?508次閱讀

    【技術分享】CAN總線相關知識探討以及Model3C兩路CAN的應用

    CAN總線相關知識,以個位數價格的工業級HMI芯片–Model3C為例, 2路CAN的應用
    的頭像 發表于 09-05 10:59 ?641次閱讀
    【技術分享】CAN總線<b class='flag-5'>相關</b><b class='flag-5'>知識</b>探討以及Model3C兩路CAN的應用

    Wiz拒絕谷歌母公司230億美元收購

    網絡安全領域的創新先鋒Wiz近日宣布了一項令人矚目的決定,毅然拒絕了科技巨頭谷歌母公司Alphabet提出的230億美元收購要約。這一決定不僅打破了業界對大型并購的期待,也彰顯了Wiz對于獨立發展道路的堅定信念。
    的頭像 發表于 08-09 09:35 ?545次閱讀

    LDO輸出電壓紋波的相關知識

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

    蘋果發布《App Store透明度報告》:2023年拒絕176萬款App

    此報告揭示,2022年App Store共審核了6892500款應用程序,其中拒絕1763812款。這些應用主要因為性能、設計與法律問題未達到標準。同時,有277923款應用得到修改并成功上線。
    的頭像 發表于 05-18 10:18 ?849次閱讀

    淺入深講解Nginx限流相關配置

    漏桶漏出請求是勻速的。10r/s是怎樣勻速的呢?每100ms漏出一個請求。 在這樣的配置下,桶是空的,所有不能實時漏出的請求,都會被拒絕掉。 所以如果10次請求同時到達,那么只有一個請求能夠得到執行,其它的,都會被拒絕
    的頭像 發表于 04-29 11:24 ?454次閱讀
    淺入深講解Nginx限流<b class='flag-5'>相關</b>配置

    什么是手機信號屏蔽器? 手機信號屏蔽器:保護隱私,拒絕干擾

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

    Meta拒絕谷歌合作提議

    近日,科技巨頭Meta拒絕與谷歌母公司Alphabet進行合作,原本的計劃是將Meta的混合現實頭顯產品Quest搭載谷歌的Android XR平臺。然而,盡管Meta作出了這一決定,谷歌方面依然保持開放態度,顯示出其在市場競爭中的靈活策略
    的頭像 發表于 03-06 10:27 ?758次閱讀

    Meta拒絕和谷歌在VR/AR領域合作提議

    Meta拒絕和谷歌在VR/AR領域合作提議 據外媒報道,Meta拒絕和谷歌在VR/AR領域合作的提議。 谷歌原本希望通過合作促成混合現實頭顯產品Quest 搭載谷歌Android XR 平臺。但是 Meta CEO扎克伯格似乎有自己的想法,難道元宇宙平臺依然是扎克伯格的執
    的頭像 發表于 03-02 15:48 ?3093次閱讀

    雕刻主軸相關知識的總結分享!|深圳恒興隆機電a

    雕刻主軸相關知識的總結分享!|深圳恒興隆機電雕刻主軸是雕刻機中的核心部件,負責驅動刀具進行雕刻、切割和雕刻加工。它是將電能轉化為機械能的關鍵組件,直接影響到雕刻機的工作效果和加工質量。本文將從
    發表于 02-26 10:30

    美國拒絕OpenAI商標申請

    美國專利商標局(PTO)再次拒絕了OpenAI將其核心術語“GPT”注冊為商標的請求。PTO認為,GPT(生成式預訓練轉換器)作為一個術語過于通用,如果允許OpenAI獨家使用,可能會妨礙競爭對手描述自己的產品為GPT。
    的頭像 發表于 02-18 10:19 ?700次閱讀
    六合彩开| 大发888官方游戏平台| 娱乐城送38| 百家乐官网最佳投注办法| 百家乐官网赌博筹码大不大| 网络百家乐路单图| 真人百家乐什么平台| 大发888有银钱的吗| 河北省| 戒掉百家乐官网的玩法技巧和规则 | 大发888娱乐场下| 百家乐官网视频免费下载| 百家乐论坛白菜| 百家乐bp| 育儿| 百家乐怎么玩了| 大发888下载新澳博| 百家乐官网百家乐官网伴侣| 巴黎百家乐地址| 明升网址| 百家乐官网职业打| 东京太阳城王子酒店| 优博百家乐官网现金网平台| 金赞百家乐娱乐城| 澳门葡京赌场| 钱柜百家乐官网的玩法技巧和规则 | 百家乐官网网盛世三国| 聚宝盆百家乐游戏| 澳门美高梅金殿| 寅午戌 24山图| 名仕国际棋牌下载| 回力百家乐官网的玩法技巧和规则 | 百家乐送现金200| 百家乐官网投注办法| 百家乐投注外挂| 祁连县| 百家乐桌14人| 太阳城百家乐| 打百家乐的技术| 汉中市| 缅甸百家乐博彩真假|