美文网首页互联网技术交流Java程序员
Java中的线程池的集中管理和监控

Java中的线程池的集中管理和监控

作者: 窝牛狂奔 | 来源:发表于2017-03-27 20:34 被阅读1021次

背景

需要将项目中的线程池统一管理,并且提供统一的监控。不至于等到程序崩溃的时候才发现。

思路

1、所有的线程池统一管理,写死在代码里,或者提供一个统一的配置文件。使用的时候,通过getbykey来获取。

2、所有的线程池设置一个name和一个允许堆积的最大数量,一旦超过这个数量,发送报警邮件,给出哪个线程池堆积了多少。

实现

首先定义自己封装过一次的线程池实体。

然后,我们再新建一个类LocalExecutorManager,用于将线程池进行集中化管理,并且启动监控线程。监控间隔为60秒一次。如果需要的话,可以自己改。

然后我们再来看看监控的代码:

最后,我们用junit来测试一下效果:

得出的结果如下:

总结

好处是我们把所有的线程池集中的管理起来,不允许在代码中随意新增线程池。并且提供了统一的监控,当程序出现异常时,我们能及早的发现并解决问题。

当然,单独用一个线程来监控线程池,这个本身也是一种消耗,但是个人觉得这个消耗是值得的。

同时我们也对线程池的功能进行了阉割,但是这个想要放开应该也不难,自己去实现下其他3种线程池的监控即可。

相关文章

  • Java中的线程池的集中管理和监控

    背景 需要将项目中的线程池统一管理,并且提供统一的监控。不至于等到程序崩溃的时候才发现。 思路 1、所有的线程池统...

  • Java线程池监控预警实现

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

  • 线程池的原理

    线程数量和队列的关系流程的示意图线程池的优势小刘老实讲源码 线程池的优势 线程池是 Java 中对线程进行统一管理...

  • 线程池原理剖析&锁的深度化

    线程池原理剖析 Java中开辟出了一种管理线程的概念,这个概念叫做线程池,可以方便的管理线程,减少内存消耗。 如何...

  • Android面试Java基础篇(二)

    (一)问:Java线程池的实现原理和使用 线程池即存放和管理线程的一个池子 (1)复用线程池中的线程,避免因为线程...

  • 19. 线程池

    Android 中的线程池就是 java 中的线程池,即 ThreadPoolExecutor 类。 Java 通...

  • Java ExecutorService使用要小心

    公司的项目中使用了ExecutorService java中的线程池进行管理线程,使用submit进行线程申请线程...

  • java Executor

    一、什么是Executor框架? 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗...

  • java中创建线程池的方式

    创建线程池的方式: 使用Java提供的用于管理线程池的接口ExecutorService 创建线程池,共有四种方式...

  • Java线程池ThreadPoolExcutor

    线程池的存在 Java中的线程池是对线程开销资源的管理,以及解决线程并发的一套框架。在开发过程中可以带来以下好处:...

网友评论

本文标题:Java中的线程池的集中管理和监控

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