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

背景

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

思路

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

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

实现

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

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

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

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

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

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

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

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

得出的结果如下:

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

总结

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

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值