最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java手動創(chuàng)建線程池代碼實(shí)例

 更新時間:2023年12月15日 09:58:09   作者:愛喝咖啡的程序員  
這篇文章主要介紹了Java手動創(chuàng)建線程池代碼實(shí)例,FixedThreadPool或者SingleThreadPool,允許的請求隊列長度為Integer.MAX_VALUE,可能會堆積大量的請求,從而導(dǎo)致OOM,需要的朋友可以參考下

Java手動創(chuàng)建線程池代碼實(shí)例

使用ExecutorServices直接創(chuàng)建線程池的缺點(diǎn):

1. FixedThreadPool或者SingleThreadPool

允許的請求隊列長度為Integer.MAX_VALUE,可能會堆積大量的請求,從而導(dǎo)致OOM。

public static ExecutorService newFixedThreadPool(int nThreads) {
    return new ThreadPoolExecutor(nThreads, nThreads,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>());
}
public static ExecutorService newSingleThreadExecutor() {
    return new FinalizableDelegatedExecutorService
        (new ThreadPoolExecutor(1, 1,
                                0L, TimeUnit.MILLISECONDS,
                                new LinkedBlockingQueue<Runnable>()));
}

2.CachedThreadPool

允許的創(chuàng)建線程數(shù)量為Integer.MAX_VALUE,可能會創(chuàng)建大量的線程,從而導(dǎo)致OOM。

public static ExecutorService newCachedThreadPool() {
    return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                    60L, TimeUnit.SECONDS,
                                    new SynchronousQueue<Runnable>());
}

生產(chǎn)環(huán)境的做法

1. 創(chuàng)建線程工廠,指定創(chuàng)建線程時的線程名稱的命名規(guī)律

ThreadFactory nameThreadFactory = new ThreadFactoryBuilder().setNameFormat(“demo-pool-%d”).build();

2. 創(chuàng)建線程池 線程池在創(chuàng)建時可以不人為指定線程工廠,默認(rèn)使用的是DefaultThreadFactory

/**
 * 各參數(shù)含義
 * corePoolSize    : 線程池中常駐的線程數(shù)量。核心線程數(shù),默認(rèn)情況下核心線程會一直存活,即使處于閑置狀態(tài)也不會 
 *                   受存活時間 keepAliveTime 的限制,除非將 allowCoreThreadTimeOut 設(shè)置為 true。
 * maximumPoolSize : 線程池所能容納的最大線程數(shù)。超過這個數(shù)的線程將被阻塞。當(dāng)任務(wù)隊列為沒有設(shè)置大小的
 *                         LinkedBlockingQueue時,這個值無效。
 * keepAliveTime   : 當(dāng)線程數(shù)量多于 corePoolSize 時,空閑線程的存活時長,超過這個時間就會被回收
 * unit            : keepAliveTime 的時間單位
 * workQueue       : 存放待處理任務(wù)的隊列
 * threadFactory   : 線程工廠
 * handler         : 拒絕策略,拒絕無法接收添加的任務(wù)
 */
ExecutorService pool1 = new ThreadPoolExecutor(
5, 200, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1024));

也可以人為的指定線程工廠

ExecutorService pool2 = new ThreadPoolExecutor(
5, 200 ,0L, TimeUnit.MILLISECONDS, 
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, 
new ThreadPoolExecutor.AbortPolicy());

到此這篇關(guān)于Java手動創(chuàng)建線程池代碼實(shí)例的文章就介紹到這了,更多相關(guān)Java線程池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis 數(shù)據(jù)封裝全攻略(告別空值與映射混亂問題)

    MyBatis 數(shù)據(jù)封裝全攻略(告別空值與映射混亂問題)

    本文系統(tǒng)介紹MyBatis數(shù)據(jù)封裝的常見問題及解決方案,涵蓋resultType、resultMap、駝峰轉(zhuǎn)換、嵌套處理、懶加載等核心機(jī)制,并推薦MyBatis-Plus簡化開發(fā),提升效率與可維護(hù)性,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • 通過實(shí)例解析synchronized和lock區(qū)別

    通過實(shí)例解析synchronized和lock區(qū)別

    這篇文章主要介紹了通過實(shí)例解析synchronized和lock區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Spring注解驅(qū)動開發(fā)實(shí)現(xiàn)屬性賦值

    Spring注解驅(qū)動開發(fā)實(shí)現(xiàn)屬性賦值

    這篇文章主要介紹了Spring注解驅(qū)動開發(fā)實(shí)現(xiàn)屬性賦值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 手把手教學(xué)Win10同時安裝兩個版本的JDK并隨時切換(JDK8和JDK11)

    手把手教學(xué)Win10同時安裝兩個版本的JDK并隨時切換(JDK8和JDK11)

    最近在學(xué)習(xí)JDK11的一些新特性,但是日常使用基本上都是基于JDK8,因此,需要在win環(huán)境下安裝多個版本的JDK,下面這篇文章主要給大家介紹了手把手教學(xué)Win10同時安裝兩個版本的JDK(JDK8和JDK11)并隨時切換的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • SpringBoot中Flowable多數(shù)據(jù)源配置及事務(wù)沖突的兩種方案

    SpringBoot中Flowable多數(shù)據(jù)源配置及事務(wù)沖突的兩種方案

    本文詳細(xì)介紹了在SpringBoot項目中配置Flowable多數(shù)據(jù)源的實(shí)戰(zhàn)方案,重點(diǎn)解決事務(wù)沖突問題,通過傳播行為調(diào)整和自定義事務(wù)管理兩種方法,確保工作流引擎與業(yè)務(wù)系統(tǒng)數(shù)據(jù)隔離,感興趣的可以了解一下
    2026-03-03
  • Java泛型類型擦除

    Java泛型類型擦除

    這篇文章主要為大家詳細(xì)介紹了Java泛型類型擦除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案

    SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案

    SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計,指標(biāo)收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應(yīng)用,本文將給大家介紹SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案,需要的朋友可以參考下
    2024-07-07
  • SpringBoot XSS攻擊的常見形式與防范方法

    SpringBoot XSS攻擊的常見形式與防范方法

    XSS攻擊是指攻擊者在Web頁面的輸入數(shù)據(jù)中插入惡意腳本,當(dāng)其他用戶瀏覽該頁面時,這些腳本就會在用戶的瀏覽器上執(zhí)行,可能導(dǎo)致信息泄露、會話劫持、惡意操作等安全風(fēng)險,本文給大家介紹了SpringBoot XSS攻擊的常見形式與防范方法,需要的朋友可以參考下
    2024-11-11
  • 一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    Java 8 (又稱為 jdk 1.8) 是 Java 語言開發(fā)的一個主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等
    2021-10-10
  • Map集合中獲取key-value值的實(shí)現(xiàn)方法

    Map集合中獲取key-value值的實(shí)現(xiàn)方法

    這篇文章主要介紹了Map集合中獲取key-value值的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論

庆城县| 噶尔县| 台湾省| 东台市| 宜黄县| 芒康县| 庆阳市| 阿克陶县| 瑞金市| 明光市| 航空| 武陟县| 简阳市| 军事| 西峡县| 平乐县| 乌什县| 三穗县| 宁城县| 泰来县| 农安县| 淮阳县| 于田县| 山西省| 集贤县| 河池市| 喀喇沁旗| 随州市| 康乐县| 双桥区| 凉城县| 普安县| 昌都县| 泰和县| 科技| 锦屏县| 金昌市| 樟树市| 弥勒县| 龙游县| 大城县|