成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:線程池核心線程設置為0時任務執(zhí)行流程怎么樣的

開發(fā) 前端
線程池是Java中管理和重用線程的一種方式,也是實現(xiàn)并發(fā)編程的一種手段。通過使用線程池可以顯著提升多線程應用程序的性能。

在面試時,有的面試官就喜歡這種刁鉆角度的面試問題,如果你對線程池的任務執(zhí)行流程熟悉的話,那么該題就不會難住你。所以在開始之前,我們先看下線程池相關的知識。

本文使用 JDK8 演示。

一、概念

線程池是Java中管理和重用線程的一種方式,也是實現(xiàn)并發(fā)編程的一種手段。通過使用線程池可以顯著提升多線程應用程序的性能。

線程池相對于線程來說,線程池主要解決了兩個問題,一個是線程的創(chuàng)建和銷毀代價大,另一個就是多線程并發(fā)執(zhí)行時可能導致系統(tǒng)資源不足的問題。

通過線程池,可以提前創(chuàng)建好一組一定數(shù)量的線程,并管理好這些線程的生命周期,也就是線程池中線程的存活時間,通過這些我們就可以在有需要的時候重用這些線程,減少創(chuàng)建和銷毀線程的開銷,提升系統(tǒng)的響應速度和系統(tǒng)資源利用率。

二、線程池工作流程

線程池的任務執(zhí)行流程是怎么樣的呢?

  • 首先會判斷當前工作線程數(shù)量是否大于核心線程數(shù)量(corePoolSize),如果小于核心線程數(shù)量,直接創(chuàng)建線程執(zhí)行任務。如果大于核心線程數(shù)量,就將任務放入任務隊列中進行緩存。
  • 判斷任務隊列容量是否已滿,如果不滿,任務放入任務隊列。
  • 如果任務隊列滿了,判斷當前工作線程數(shù)量是否大于最大線程數(shù)量(maximumPoolSize),如果小于最大線程數(shù)量,創(chuàng)建線程執(zhí)行任務。
  • 當工作線程已經(jīng)大于最大線程了,此時,任務會觸發(fā)拒絕策略,默認的拒絕策略是拋出異常。

任務工作流程如下圖所示:

到了這你心中有結果了嗎,是不是線程池會把該任務丟入任務隊列呢,不著急,慢慢來,下面我們一起看下源碼中是如何判斷的。

三、源碼分析

1.寫個測試方法

在實際的工作中要注意設置線程名稱以及拒絕策略哦!

    public static void main(String[] args) {
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(0,10,1000,
                TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<>(1000), new NamedThreadFactory("zuiyu",false));

        threadPoolExecutor.execute(()->{
            System.out.println("醉魚Java");
        });
    }

2.Debug 一下

首先我們看一下execute方法就知道是如何了。

通過 debug 發(fā)現(xiàn),當代碼運行到圖中圈起來的代碼這一行時,也就是當工作線程數(shù)量為0時,會執(zhí)行下一步的創(chuàng)建線程執(zhí)行任務。

最后程序輸出了《醉魚Java》,所以當核心線程設置為 0 的時候,線程池會判斷當前工作線程為0 時,會創(chuàng)建線程執(zhí)行任務。

結論

通過簡單的 debug 了一下任務的執(zhí)行流程,核心線程設置為 0 時,當把任務丟入線程池,還是會把任務丟入任務隊列,但是也會在下一步進行判斷當前工作線程的線程數(shù)量是否為 0,如果為 0,也會創(chuàng)建線程進行執(zhí)行任務。所以現(xiàn)在你懂了嗎?

責任編輯:趙寧寧 來源: 醉魚Java
相關推薦

2024-05-08 00:00:00

核心線程數(shù)隊列

2024-09-12 08:35:06

2024-09-09 15:09:30

2022-03-28 08:31:29

線程池定時任務

2024-04-02 09:45:27

線程池Executors開發(fā)

2024-03-11 18:18:58

項目Spring線程池

2024-10-31 09:30:05

線程池工具Java

2021-11-29 10:55:11

線程池Java面試

2020-05-22 08:11:48

線程池JVM面試

2024-09-11 22:51:19

線程通訊Object

2022-06-24 06:43:57

線程池線程復用

2021-03-29 08:47:24

線程面試官線程池

2021-05-08 07:53:33

面試線程池系統(tǒng)

2023-11-29 16:38:12

線程池阻塞隊列開發(fā)

2025-02-21 15:25:54

虛擬線程輕量級

2023-12-20 14:35:37

Java虛擬線程

2023-11-06 17:39:35

JavaArrayList線程

2024-02-28 09:54:07

線程池配置

2023-02-04 07:34:12

URLIP身份定位

2022-02-08 08:14:07

Context數(shù)據(jù)線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区四区在线观看 | 免费一级毛片 | 中文字幕免费在线 | 91视频精选 | 区一区二区三在线观看 | 日韩国产欧美在线观看 | 欧美日韩大片 | 久久在看 | 国产1区 | 国产亚洲黄色片 | 一级a爱片性色毛片免费 | 99精品欧美一区二区蜜桃免费 | 久久精彩视频 | 国产视频观看 | 久久久观看 | 欧美九九九 | 亚欧洲精品在线视频免费观看 | 亚洲国产一区在线 | 99re6在线视频 | 日本免费网 | 中文字幕视频在线免费 | 成人免费网站在线 | 在线看一区二区三区 | 久久精品一区 | 国产精品久久 | 国产精品高潮呻吟久久 | 男人视频网站 | 久久天堂| 五月天婷婷久久 | 国产精品福利视频 | 亚洲69p | 激情一区二区三区 | 日日骚视频 | 亚洲欧美日韩在线不卡 | 91精品国产美女在线观看 | 99久久精品一区二区毛片吞精 | 精品视频久久久久久 | 中文字幕成人av | 中文字幕综合 | 欧美无乱码久久久免费午夜一区 | 九九色九九|