问题描述
解决方案
线程数一直上升,建议开通jmx,利用远程的工具查看,例如jdk自带的jvisualvm。出现这种情况原因比较多,例如:
1)线程之间资源竞争,导致前面线程池没有释放资源,后面线程阻塞
2)线程出现死循环
3)优先级线程一直占据竞争资源
4)某些方法同步锁或者某些变量同步锁
建议用jvisualvm查看应该关闭的线程堵塞的方法的行数。
解决方案二:
你如何实现的线程池,是使用java的ThreadPoolExecutor 么,还是用 Executors.newFixedThreadPool生成固定大小的线程池。代码贴上来看看,“线程总数一直在上升,但是内存没有出现过大的波动”,你是通过工具看的的么,你用jstack看到线程有很多么?
解决方案三:
线程数一直上升,说明你的线程池没有释放资源
解决方案四:
线程数一直上升,说明你的线程池没有释放资源
解决方案五:
线程数一直上升,说明你的线程池没有释放资源
解决方案六:
线程数一直上升,说明你的线程池没有释放资源
解决方案七:
线程数一直上升,说明你的线程池没有释放资源
时间: 2024-12-24 11:44:17