线程池监控

系统中大量使用线程池,有必要对线程池进行监控。线程

能够监控以下指标:code

  • 能够检测到正在执行的线程数。
  • 能够检测任务队列堆积任务数。
  • 能够检测活动线程数。
  • 能够检测最大线程数。

具体以下:继承

  • queue.size:获取线程池任务队列数量。
  • taskCount:线程池须要执行的任务数量。
  • completedTaskCount:线程池在运行过程当中已完成的任务数量。小于或等于taskCount。
  • largestPoolSize:线程池曾经建立过的最大线程数量。经过这个数据能够知道线程池是否满过。如等于线程池的最大大小,则表示线程池曾经满了。
  • getPoolSize:线程池的线程数量。若是线程池不销毁的话,池里的线程不会自动销毁,因此这个大小只增不减。
  • getActiveCount:获取活动的线程数。

经过扩展线程池进行监控,经过继承线程池并重写线程池的beforeExecute,afterExecute和terminated方法,咱们能够在任务执行前,执行后和线程池关闭前干一些事情。如监控任务的平均执行时间,最大执行时间和最小执行时间等。队列

这几个方法在线程池里是空方法。如: protected void beforeExecute(Thread t, Runnable r) { }get

相关文章
相关标签/搜索