<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      java并發:線程池之飽和策略

      一、飽和策略(線程池任務拒絕策略)

      ThreadPoolExecutor構造函數的RejectedExecutionHandler handler參數表示當提交的任務數超過maxmumPoolSize與workQueue之和時,任務會交給RejectedExecutionHandler來處理,此處我們來具體了解一下

      二、源碼分析

      (1)ThreadPoolExecutor中默認的飽和策略定義如下:

          /**
           * The default rejected execution handler.
           */
          private static final RejectedExecutionHandler defaultHandler =
              new AbortPolicy();

       

      (2)ThreadPoolExecutor中獲取、設置飽和策略的方法如下:

          /**
           * Sets a new handler for unexecutable tasks.
           *
           * @param handler the new handler
           * @throws NullPointerException if handler is null
           * @see #getRejectedExecutionHandler
           */
          public void setRejectedExecutionHandler(RejectedExecutionHandler handler) {
              if (handler == null)
                  throw new NullPointerException();
              this.handler = handler;
          }
      
          /**
           * Returns the current handler for unexecutable tasks.
           *
           * @return the current handler
           * @see #setRejectedExecutionHandler(RejectedExecutionHandler)
           */
          public RejectedExecutionHandler getRejectedExecutionHandler() {
              return handler;
          }

       

      (3)RejectedExecutionHandler接口

      RejectedExecutionHandler的定義如下:

      public interface RejectedExecutionHandler{
          //被線程池丟棄的線程處理機制
          public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) ;
      }

       

      (4)AbortPolicy

      此策略繼承RejectedExecutionHandler接口,其源碼如下:

      public static class AbortPolicy implements RejectedExecutionHandler{
      
          public AbortPolicy(){}
          
          //直接拋出異常
          public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
              throw new RejectedExecutionException("Task"+r.toString()+"rejected from"+executor.toString());
          }
          
      }

       

      (5)自定義飽和策略

      實現RejectedExecutionHandler接口,代碼如下:

      package com.test;
      
      import java.util.concurrent.RejectedExecutionHandler;
      import java.util.concurrent.ThreadPoolExecutor;
      
      public class RejectedExecutionHandlerDemo implements RejectedExecutionHandler{
      
          @Override
          public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
              // TODO Auto-generated method stub
              System.out.println("線程信息"+r.toString()+"被遺棄的線程池:"+executor.toString());
          }
          
      }

       

      Note:

      針對線程池使用 FutureTask 時,如果飽和策略設置為 DiscardPolicy 和 DiscardOldestPolicy,并且在被拒絕的任務的 Future對象上調用了無參 get方法,那么調用線程會一直被阻塞。

      posted @ 2021-08-17 10:03  時空穿越者  閱讀(1110)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 成人无码午夜在线观看| 亚洲久悠悠色悠在线播放| 午夜片神马影院福利| 国产成人女人在线观看| 国产美女深夜福利在线一| 免费人成网站免费看视频| 拍摄av现场失控高潮数次| 国产日韩一区二区四季| av无码久久久久不卡网站蜜桃| 涩涩爱狼人亚洲一区在线| 亚洲欧美成人一区二区三区| 久久精品国产再热青青青| 久久精品蜜芽亚洲国产av| 377P欧洲日本亚洲大胆| 新婚少妇无套内谢国语播放| 97一期涩涩97片久久久久久久| 国产一区二区三区精品综合| 色窝窝免费一区二区三区| 国产盗摄xxxx视频xxxx| 五月综合激情婷婷六月| 国产午夜亚洲精品不卡下载| 彭水| 国产互换人妻xxxx69| 国产久免费热视频在线观看| 色欲av亚洲一区无码少妇| 欧产日产国产精品精品| 国内精品综合九九久久精品| 亚洲一区精品伊人久久| 亚洲欧美日韩成人综合一区| 在线无码免费看黄网站| 国产成年码AV片在线观看| 靖边县| 熟妇高潮精品一区二区三区| 92精品国产自产在线观看481页| 欧美黑人添添高潮a片www| 亚洲欧美日韩综合一区二区| 中文午夜乱理片无码| 国产精品久久久久久人妻精品动漫 | 欧美亚洲另类自拍偷在线拍| 国产精选一区二区三区| 国产高清一区二区不卡|