国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

線程池監控:執行超時、等待超時;執行超時數量、等待超時數量

開發 前端
線程池 ThreadPoolExecutor 為了提供擴展,提供了兩個方法 beforeExecute 和 afterExecute,每個任務執行前后都會調用這兩個方法,相當于對線程任務的執行做了一個切面。

?監控線程池:執行超時、等待超時;執行超時數量、等待超時數量;

擴展線程池 ThreadPoolExecutor 的兩個方法 beforeExecute 和 afterExecute

自定義Runnable 記錄關鍵節點時間

關鍵時間節點參數:

  • 任務創建(提交)時間:submitTime
  • 任務開始執行時間:startExeTime
  • 任務結束執行時間:endExeTime
  • 任務在隊列等待時間:任務開始執行時間 - 任務創建(提交)時間
  • 任務執行總時間:任務結束執行時間 - 任務開始執行時間

源碼分析

線程池 ThreadPoolExecutor 為了提供擴展,提供了兩個方法 beforeExecute 和 afterExecute,每個任務執行前后都會調用這兩個方法,相當于對線程任務的執行做了一個切面。

public class ThreadPoolExecutor extends AbstractExecutorService {
/**
* @param t 執行任務的線程
* @param
protected void beforeExecute(Thread t, Runnable r){ }

/**
* @param r 將要被執行的任務
* @param
protected void afterExecute(Runnable r, Throwable t){ }
}

源碼執行邏輯:

線程池擴展代碼:

public class ThreadPoolExpandTest {
// 定義線程池
public static ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(
2,
4,
60,
TimeUnit.SECONDS,
new ArrayBlockingQueue<>(5),
new ThreadPoolExecutor.DiscardOldestPolicy()
){
@Override
/**
* @param t 執行任務的線程
* @param
protected void beforeExecute(Thread t, Runnable r){
System.out.println("beforeExecute將要被執行");
}

/**
* @param r 將要被執行的任務
* @param
@Override
protected void afterExecute(Runnable r, Throwable t){
System.out.println("afterExecute已經執行完畢");
}
};
public static void main(String[] args){
poolExecutor.execute(()->{
System.out.println("任務執行");
});
}
}

運行結果:

beforeExecute執行
任務執行
afterExecute執行

總結:從測試代碼可以看出,通過擴展線程池參數可以進行任務執行的監控。

自定義Runnable

通過自定義Runnable,記錄任務執行的一些時間:

  • 任務創建(提交)時間
  • 任務開始執行時間
public class DynamicRunnable implements Runnable{
/**
* runnable
*/
private final Runnable runnable;
/**
* 任務創建(提交)時間
*/
private final Long submitTime;
/**
* 任務開始執行時間
*/
private Long startExeTime;

public DynamicRunnable(Runnable runnable){
this.runnable = runnable;
submitTime = System.currentTimeMillis();
}

@Override
public void run(){
runnable.run();
}

public Long getSubmitTime(){
return submitTime;
}

public void setStartExeTime(Long startExeTime){
this.startExeTime = startExeTime;
}

public Long getStartExeTime(){
return startExeTime;
}
}

繼承線程池+自定義Runnable

核心參數:

/**
* 執行超時,單位(毫秒)
*/
private long runTimeout;

/**
* 等待超時,單位(毫秒)
*/
private long queueTimeout;

/**
* 執行超時數量
*/
private final AtomicInteger runTimeoutCount = new AtomicInteger();

/**
* 等待超時數量
*/
private final AtomicInteger queueTimeoutCount = new AtomicInteger();

重寫ThreadPoolExecutor方法:

@Override
public void execute(Runnable command){
if (runTimeout > 0 || queueTimeout > 0) {
// 記錄任務提交時間
command = new DynamicRunnable(command);
}
super.execute(command);
}
@Override
protected void beforeExecute(Thread t, Runnable r){
if (!(r instanceof DynamicRunnable)) {
super.beforeExecute(t, r);
return;
}
DynamicRunnable runnable = (DynamicRunnable) r;
long currTime = System.currentTimeMillis();
if (runTimeout > 0) {
// 記錄任務開始執行時間
runnable.setStartExeTime(currTime);
}
if (queueTimeout > 0) {
// 任務開始執行時間 - 任務創建(提交)時間
long waitTime = currTime - runnable.getSubmitTime();
if (waitTime > queueTimeout) {
log.error("{} execute queue timeout waitTime: {}ms", this.getThreadPoolName(),waitTime);
}
}
super.beforeExecute(t, r);
}
@Override
protected void afterExecute(Runnable r, Throwable t){
if (runTimeout > 0) {
DynamicRunnable runnable = (DynamicRunnable) r;
// 任務執行總時間:任務結束執行時間 - 任務開始執行時間
long runTime = System.currentTimeMillis() - runnable.getStartExeTime();
if (runTime > runTimeout) {
runTimeoutCount.incrementAndGet();
log.error("{} execute, run timeout runTime: {}ms", this.getThreadPoolName(), runTime);
}
}
super.afterExecute(r, t);
}

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-04-23 11:43:55

MySQL數據庫SQL

2017-08-30 17:21:05

LinuxShell超時現象

2009-06-11 16:44:06

超時控制Java線程

2012-02-15 13:26:39

JavaJava Socket

2021-02-22 17:18:35

MySQLSQL行鎖

2009-07-21 14:32:51

ASP.NET進程模型

2017-06-04 16:24:27

線程線程池中斷

2013-04-03 11:07:46

JavaJava線程

2024-04-30 12:56:00

多線程.NET

2014-03-18 13:27:55

Redis數據存儲

2012-08-09 09:11:32

PHP超時

2021-07-01 09:42:08

Redisson分布式

2010-11-25 11:15:11

MySQL查詢超時

2021-11-15 12:42:25

C# 定位gRPC

2024-12-26 12:59:39

2024-02-26 08:50:37

訂單自動取消消息

2016-08-04 14:41:21

架構java服務端開發

2020-12-09 08:21:47

編程Exchanger工具

2012-03-05 19:59:17

Mango

2017-05-22 16:00:14

點贊
收藏

51CTO技術棧公眾號

在线成人视屏 | 九九热这里有精品| 激情小说亚洲色图| 亚洲综合社区| 精品一区二区三区蜜桃| 日韩毛片高清在线播放| 欧美成人bangbros| 成人黄色片网站| 国产东北露脸精品视频| 欧美国产日韩在线观看| 色欧美片视频在线观看在线视频| 国产手机视频精品| 成人黄色影片在线| aaa一级毛片| 成年人网站免费视频| 最新国产在线| 国产一区二区三区免费在线| 亚洲女同同性videoxma| 亚洲特黄一级片| 这里只有精品视频在线| 亚洲综合社区网| 成全视频全集| 电影一区中文字幕| 国产麻豆成人精品| 欧美另类久久久品| 成人伊人精品色xxxx视频| 高清一区二区视频| 精品丝袜在线| 亚洲国产高清一区| 日韩欧美在线视频| 国产va免费精品高清在线观看 | 亚州av中文字幕在线免费观看| 激情综合五月| 2024国产精品| 久久久av网站| 成人在线免费观看av| 国产成人毛片| 国产suv一区二区三区88区| 亚洲福利在线播放| 欧美日韩一级在线| 不卡一二三区| 国产成人av电影在线| 亚洲女成人图区| 米仓穗香在线观看| 澳门成人av网| 成人国产精品免费观看动漫| 亚洲国产精品999| 一区二区三区国| 小h片在线观看| 99视频一区二区| 九九久久精品一区| 爆乳熟妇一区二区三区霸乳| 波多野结衣欧美| 亚洲图片欧美视频| 91成人免费视频| 白白色在线观看| 秋霞影视一区二区三区| 久久精品日产第一区二区| 欧美日韩激情小视频| 成人av在线观| 国产综合久久久久影院| 午夜在线一区| 亚洲高清资源| 天天操综合网| 99精品网站| 日韩av在线播放网址| 国产精选一区| 欧美人妖在线| 少妇精品久久久一区二区三区| 91精品久久久久久综合五月天| 国产精品99久久久久久董美香| 色8久久影院午夜场| 最新欧美色图| 在线最新版中文在线| 亚洲优女在线| 亚洲精品.com| 亚洲人成777| 亚洲超碰在线观看| 国产精品久久久久久久久久白浆| 成人盗摄视频| 青青一区二区| 蜜桃一区二区| 成人看的视频| 自拍偷拍欧美| 一本色道精品久久一区二区三区| 一本色道久久综合亚洲精品不卡| 一本不卡影院| 丝袜美腿亚洲色图| 狠狠色伊人亚洲综合成人| 国产一区在线观看视频| 成人妖精视频yjsp地址| 久久众筹精品私拍模特| 中文字幕免费一区| 一区二区三区在线观看视频| 欧美日韩视频免费播放| 欧美色区777第一页| 日韩美女一区二区三区| 亚洲毛片在线看| 日韩性xxxx爱| 97在线视频观看| 国产精品自拍小视频| a级国产乱理论片在线观看99| 极品日韩久久| 亚洲欧美日韩不卡一区二区三区| 亚洲精品少妇一区二区| 农村妇女精品一二区| 精品剧情v国产在线观看| 色视频在线播放| 自拍视频在线网| 嗯~啊~轻一点视频日本在线观看| 久久91导航| 国产96在线亚洲| 中文字幕乱码亚洲无线精品一区 | 3d欧美精品动漫xxxx无尽| 国产一区精品福利| 美女午夜精品| 欧美va亚洲va日韩∨a综合色| 一本色道久久| 成人av电影在线观看| 中文子幕无线码一区tr| 午夜欧美一区二区三区在线播放| 91精品一区二区三区久久久久久| 亚洲性视频网址| 欧美主播福利视频| 国产一区二区黄色| 黄色一级大片免费| 偷偷要 色偷偷| 亚洲区欧洲区| 91精品尤物| 亚洲成人中文| 成人国产精品免费网站| 不卡区在线中文字幕| 欧美一区亚洲二区| 蜜臀av免费一区二区三区| 亚洲成av人片在线观看无码| 99精品国产在热久久婷婷| 蜜臀精品久久久久久蜜臀 | 高清精品视频| 欧美日本精品| 丰满放荡岳乱妇91ww| 一区二区三区加勒比av| 日韩精品一区国产麻豆| 欧美黑人一级爽快片淫片高清| 亚洲最大成人免费视频| 毛片av在线播放| 中出在线观看| 中文在线中文资源| 少妇精品久久久| 久久99精品久久久久婷婷| 日韩理论片一区二区| 日韩精品一区二区三区中文不卡| 久久久久久有精品国产| 精品麻豆av| 超碰超碰在线观看| 制服丝袜中文字幕在线| 97一区二区国产好的精华液| 国产精品综合| 国产精品系列在线| 日韩一区二区三区在线视频| 久久久久九九九九| 日本一区二区三不卡| 国产h色视频在线观看| 国产黄色大片在线观看| 国产真实有声精品录音| 国产一区二区三区黄视频| 亚瑟在线精品视频| 色偷偷偷综合中文字幕;dd| 97netav| 四季av一区二区| 国产蜜臀在线| 欧美第十八页| 久久久亚洲精品石原莉奈| 欧美一区二区三区视频在线观看| 91精品国产一区| 欧美一级特黄aaaaaa在线看片| 四虎精品在永久在线观看| 国产精品成人3p一区二区三区 | 国产精品久久久网站| 美腿丝袜亚洲三区| 福利视频第一区| 欧美理论电影在线观看| 日韩欧美精品久久| 黄色污网站在线免费观看| 青青青国产精品| 日韩精品成人一区二区三区| 亚洲视频精选在线| 色吧影院999| 欧美日韩国产免费一区二区三区 | 久久婷婷综合激情| 精品美女被调教视频大全网站| 91精品久久久久久久久不口人| 久久美女福利视频| 国产精品25p| 亚洲精品乱码| 亚洲女同一区二区| 久久伊人精品视频| 亚洲区成人777777精品| av观看在线| 一区二区亚洲| 亚洲r级在线视频|