线程处于WAITING状态:java.lang.Thread.State:在sun.misc.Unsafe.park(本机方法)中等待(停放)

时间:2018-03-18 17:29:17

标签: java multithreading jvm thread-safety threadpool

我的应用程序负载很重,我的日志低于日志
sudo -u tomcat jstack <java_process_id>

以下主题正在消耗来自Kafka的消息,并且卡住了。由于此线程处于WAITING状态,因此不再使用kafka消息。

"StreamThread-3" #91 daemon prio=5 os_prio=0 tid=0x00007f9b5c606000 nid=0x1e4d waiting on condition [0x00007f9b506c5000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x000000073aad9718> (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.ArrayBlockingQueue.put(ArrayBlockingQueue.java:353)
    at ch.qos.logback.core.AsyncAppenderBase.put(AsyncAppenderBase.java:160)
    at ch.qos.logback.core.AsyncAppenderBase.append(AsyncAppenderBase.java:148)
    at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
    at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
    at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
    at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
    at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
    at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
    at ch.qos.logback.classic.Logger.error(Logger.java:538)
    at com.abc.system.solr.repo.AbstractSolrRepository.doSave(AbstractSolrRepository.java:316)
    at com.abc.system.solr.repo.AbstractSolrRepository.save(AbstractSolrRepository.java:295)

我也找到了这篇文章 WAITING at sun.misc.Unsafe.park(Native Method) 但在我的情况下它并没有帮助我。

还有什么我可以调查以获得更多细节?

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。但是,幸运的是,我通过解决池的大小以及生产者和消费者的数量来解决了我的问题。

尝试检查是否有任何方法可以配置以下内容。

  1. 线程池的大小
  2. 消费者/生产者的数量(如果可以在kafka中进行配置)

确保线程池应该有足够的线程来同时服务消费者和生产者。