91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行ThreadPoolExecutor的keepAliveTime=0說明

發布時間:2021-12-17 14:39:03 來源:億速云 閱讀:422 作者:柒染 欄目:大數據

如何進行ThreadPoolExecutor的keepAliveTime=0說明,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。




解釋   ThreadPoolExecutor的keepAliveTime=0  。

如何進行ThreadPoolExecutor的keepAliveTime=0說明


上圖來自《并發編程的藝術》一書,書中有下面一段描述:

“  

“當線程池中的線程數大于corePoolSize時,keepAliveTime 為多余的空閑線程等待新任務的最長時間, 超過這個時間后多余的線程將被終止。這里把keepAliveTime設置為0L,意味著多余 的空閑線程會被立即終止。”

網上很多資料都是說的0表示在空閑的時候線程永久存活。其實是不準確的。

附上驗證代碼:

public static void main(String[] args) throws InterruptedException {
       // 創建了一個線程池
       ThreadPoolExecutor executor = new ThreadPoolExecutor(1,
               2,
               0, TimeUnit.SECONDS,
               new LinkedBlockingQueue<Runnable>(1));

       for (int i = 0; i < 3; i++) {
           executor.execute(new DemoTask(i));
       }

       while (true) {
           System.out.println("總線程數:" + executor.getPoolSize() + ", 當前活躍線程數:" + executor.getActiveCount());
           TimeUnit.SECONDS.sleep(1);
       }
   }

   static class DemoTask implements Runnable {
       int num;

       public DemoTask(int i) {
           this.num = i;
       }

       @Override
       public void run() {
           System.out.println("num=" + num + " Thread = " + Thread.currentThread().getName());
           if (num >= 1) {
               try {
                   TimeUnit.SECONDS.sleep(1);
                   System.out.println("num=" + num + " sleep 1 s結束");
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           } else {
               try {
                   TimeUnit.SECONDS.sleep(3);
                   System.out.println("num=" + num + " sleep 3 s結束");
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
       }
   }

 


打印結果:

num=2 Thread = pool-1-thread-2
總線程數:2, 當前活躍線程數:2
num=0 Thread = pool-1-thread-1
num=2 sleep 1 s結束
num=1 Thread = pool-1-thread-2
總線程數:2, 當前活躍線程數:2
num=1 sleep 1 s結束
總線程數:1, 當前活躍線程數:1
num=0 sleep 3 s結束
總線程數:1, 當前活躍線程數:1
總線程數:1, 當前活躍線程數:0
總線程數:1, 當前活躍線程數:0

關于如何進行ThreadPoolExecutor的keepAliveTime=0說明問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民权县| 宝清县| 龙门县| 兖州市| 浦东新区| 宣汉县| 罗田县| 扎囊县| 枝江市| 云安县| 辉南县| 彭山县| 偃师市| 海阳市| 绵阳市| 台北市| 大洼县| 盐津县| 辽中县| 许昌县| 纳雍县| 吉木萨尔县| 固安县| 黔江区| 高清| 财经| 板桥市| 潞西市| 莎车县| 那曲县| 蓝山县| 衡阳县| 铜鼓县| 沧源| 保山市| 方城县| 临漳县| 张家口市| 城口县| 六安市| 高陵县|