记录一次项目中出现大量线程等待AQS的ConditionObject的问题:
dump调用栈如上:
起初怀疑大量空闲线程是否会影响系统性能,后来分析是因为没有任务,而起初线程池创建的线程还在,一直再从阻塞队列中获取任务,而阻塞队列中没有任务,导致线程获取任务被park掉,处于等待任务到来的状态。这种原因主要是因为线程池未关闭,导致线程池中的线程一直处于空闲状态。
记录一次项目中出现大量线程等待AQS的ConditionObject的问题:
dump调用栈如上:
起初怀疑大量空闲线程是否会影响系统性能,后来分析是因为没有任务,而起初线程池创建的线程还在,一直再从阻塞队列中获取任务,而阻塞队列中没有任务,导致线程获取任务被park掉,处于等待任务到来的状态。这种原因主要是因为线程池未关闭,导致线程池中的线程一直处于空闲状态。