设置合适的线程数量

  • CPU密集型:
    CPU核数的1-2倍

  • IO密集型:

线程数 = CPU 核心数 *(1+平均等待时间/平均工作时间)

上线后,可以通过写代码等办法统计到各部分语句的运行时长。

也可以通过扩展线程池进行监控。可以通过继承线程池来自定义线程池,重写线程池的beforeExecute、afterExecute和terminated方法,也可以在任务执行前、执行后和线程池关闭前执行一些代码来进行监控。

例如,监控任务的平均执行时间、最大执行时间和最小执行时间等,这几个方法在线程池里是空方法

Java线程池实现原理及其在美团业务中的实践

posted @ 2022-06-15 16:26  liuhuayiye  阅读(62)  评论(0编辑  收藏  举报