java进程导致load值飙高

linux的load值飙高,但是cpu值不高

"thread" #168 prio=5 os_prio=0 tid=0x00007fba795e3000 nid=0x22be runnable [0x00007fb9c41c0000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000005c1409df0> (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 java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:550)

通过jstack查看线程栈信息,发现大量线程处于当前状态
第一行线程状态是runnable,第二行线程状态是WAITING

我理解第一行是代表操作系统的线程状态,第二行是java 的线程状态
我不明白什么情况下会导致出现这种情况?

如果Java进程导致load值飙高,可能是由于
以下原因之一:
1.内存泄漏:如果Java进程不释放内存,则可能导致内存不足,从而导致系统负载飙升。
2.过多的线程:如果Java进程创建了过多的线程,则可能导致系统资源不足,从而导致系统负载飙升。
3.资源长时间占用:如果Java进程长时间占用系统资源,则可能导致系统负载飙升。
4.程序架构问题:如果Java程序的架构不当,则可能导致系统负载飙升。
如果您正在经历这种情况,请进行以下操作以解决问题:
5.使用内存分析工具检查内存泄漏;
6.使用线程监视工具检查线程数;
7.使用性能分析工具分析Java进程的资源使用情况;
8.检查Java程序的架构,并进行必要的更改。
如果仍然无法解决问题,请考虑寻求技术支持。