设置合适的线程数量
-
CPU密集型:
CPU核数的1-2倍 -
IO密集型:
线程数 = CPU 核心数 *(1+平均等待时间/平均工作时间)
上线后,可以通过写代码等办法统计到各部分语句的运行时长。
也可以通过扩展线程池进行监控。可以通过继承线程池来自定义线程池,重写线程池的beforeExecute、afterExecute和terminated方法,也可以在任务执行前、执行后和线程池关闭前执行一些代码来进行监控。
例如,监控任务的平均执行时间、最大执行时间和最小执行时间等,这几个方法在线程池里是空方法