Java程序卡住了怎么办

  介绍

本篇内容介绍了“Java程序卡住了怎么办”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1。获取现场故障信息

 jstack  6688年

参数为PID,这时我们看堆栈信息,发现没有自己程序相关的类,但发现下面这样的句子:

“德鲁伊connectionpool -创造- 418179060“,# 25,daemon 一家=5,os_prio=0, tid=0 x00007fa74d8ad000  nid=0 x15a84  waiting 提醒condition  [0 x00007fa6f8a30000]
  ,,,java.lang.Thread.State: WAITING (停车)
  at  sun.misc.Unsafe.park (Native 方法)
  安康;parking 用wait  for , & lt; 0 x00000000c47d0990>, (a  java.util.concurrent.locks.AbstractQueuedSynchronizer ConditionObject美元)
  at  java.util.concurrent.locks.LockSupport.park (LockSupport.java: 175)
  at  java.util.concurrent.locks.AbstractQueuedSynchronizer ConditionObject.await美元(AbstractQueuedSynchronizer.java: 2039)
  at  com.alibaba.druid.pool.DruidDataSource CreateConnectionThread.run美元(DruidDataSource.java: 2480) 

哦,原来是<代码>德鲁伊>

2。根据打印信息检索解决方案

开始使用必应检索了一下,发现这篇讨论:线程卡死在druiddatasource上

3。根据检索到的信息做出尝试

既然讨论中提到可能和版本有关就检查了自己使用的版本,发现版本很新,出问题的可能很小。那么就调大最大活跃数进行试验。发现在调大最大活跃数之后,使用<代码> 顶部命令查询,果然,cpu <代码> 不再占用率很低,cpu <代码> 开始开心地跑起来了。通过了这个并发数量的压力测试。

4。其它有益的思路

<李>

如果使用中文无法搜索出想要的结果,尝试使用英文搜索。

<李>

如果自己已经尝试过三个方案结果失败或者已经尝试半个工作日了,请立即上报上一级或请教周边有经验的人员(工作不是训练场,解决问题最首要)。

Java程序卡住了怎么办