美文网首页技术分享
java - 如何监控线程池堆积任务

java - 如何监控线程池堆积任务

作者: 夹胡碰 | 来源:发表于2021-04-10 14:43 被阅读0次

1. 获得堆积任务大小

public static void main(String[] args) throws InterruptedException {
    ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor)Executors.newFixedThreadPool(2);
    for (int i = 0; i < 10; i++) {
        threadPoolExecutor.submit(new Thread(() -> {
            try {
                Thread.sleep(100000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }));
    }

    Thread.sleep(3000);
    // out => 等待线程 8
    System.out.println(threadPoolExecutor.getQueue().size());
}
获取到堆积大小了,就可以通过打印日志的形式进行输出,也可以通过micrometer + prometheus + grafana进行完整的监控,可参考 通过micrometer实时监控线程池的各项指标

拓展: ThreadPoolExecutor支持其他数量监控,例如:


相关文章

  • java - 如何监控线程池堆积任务

    1. 获得堆积任务大小 获取到堆积大小了,就可以通过打印日志的形式进行输出,也可以通过micrometer + p...

  • Java线程池监控预警实现

    前言 在Java线程池的使用中,如何动态可视化监控线程池各项运行指标是一个比较重要的需求。 线程池监控必要性 如果...

  • Java 线程池监控

    对 ThreadPoolExecutor 各个属性解释得挺全的 Java并发(六)线程池监控[https://w...

  • Java线程池拒绝策略

    【Java线程池拒绝任务策略】创建线程池可以指定拒绝策略如下: 一 拒绝时机1) 调用线程池的shutdown函数...

  • Java面试题——多线程

    Java面试题——多线程 1,什么是线程池? 线程池是多线程的一种处理方式,处理过程中将任务提交给线程池,任务执行...

  • 线程池

    线程池的实现原理当向线程池提交一个任务之后,线程池是如何处理这个任务呢?(1)线程池判断核心线程池里的线程是否都在...

  • 2019-03-25——Java并发 Executor框架 Th

    ThreadPoolExecutor是Java线程池的核心类,以内部线程池的形式对外提供管理任务执行,线程调度,线...

  • Java:线程池Executors.newFixedThread

    摘要:Java,多线程,线程池 多线程编程和线程池概述 (1)多线程程序: 计算机可以实现多任务 ( multit...

  • 整整 Java 线程池

    整整 Java 线程池 用官方文档来说,线程池解决了两个问题: 一是在执行大量的异步任务时,因为线程池减少了任务开...

  • 【Java进阶营】整整 Java 线程池

    整整 Java 线程池用官方文档来说,线程池解决了两个问题: 一是在执行大量的异步任务时,因为线程池减少了任务开始...

网友评论

    本文标题:java - 如何监控线程池堆积任务

    本文链接:https://www.haomeiwen.com/subject/zosikltx.html