Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jetty多个接收器被阻止等待锁定,对象被其他接收器锁定_Java_Multithreading_Jetty - Fatal编程技术网

Java Jetty多个接收器被阻止等待锁定,对象被其他接收器锁定

Java Jetty多个接收器被阻止等待锁定,对象被其他接收器锁定,java,multithreading,jetty,Java,Multithreading,Jetty,我面临一个应用程序挂起的问题,可能是由于Jetty线程被阻塞,但我不能100%确定如何解释线程转储,观察到的情况是否正常,Jetty接受器的生命周期如何 这是我观察到的线程转储的一个特定部分: "qtp1291915867-82 Acceptor0 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x52 state=BLOCKED at sun.nio.ch.ServerSocketChannelImpl.accept(

我面临一个应用程序挂起的问题,可能是由于Jetty线程被阻塞,但我不能100%确定如何解释线程转储,观察到的情况是否正常,Jetty接受器的生命周期如何

这是我观察到的线程转储的一个特定部分:

"qtp1291915867-82 Acceptor0 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x52 state=BLOCKED
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
      - waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
    at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
    at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:804)

"qtp1291915867-83 Acceptor1 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x53 state=BLOCKED
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
      - waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
    at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
    at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:804)

"qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x54 state=RUNNABLE (running in native)
    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:305)
      - locked java.lang.Object@71918ba2
    at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
    at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:804)

"qtp1291915867-85 Acceptor3 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x55 state=BLOCKED
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
      - waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
    at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
    at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:804)
好了,接受程序的数量应该在CPU的1到#之间,所以我假设这是在4核CPU中运行的,问题是,从jetty的角度来看,其他接受程序被阻止等待其他接受程序资源是正常的吗?如果是的话,这个资源是什么

我不太喜欢Jetty,所以我真的不知道这是否正常,他们只是在等待轮到他们处理传入连接,如果是,那么问题就在不同的地方,但我想放弃Jetty部分

顺便说一句,jetty版本是7.5.4

有什么想法吗


谢谢

,考虑升级。感谢JoakimrdDy不幸的是,短期内可能是不可能的,所以现在我需要处理这种情况。没有关于堆栈跟踪指示一个问题(从一个数据点)。当您体验到这种感知的“挂起”时,尝试访问静态资源。如果jetty做出响应,即使是404,也不是jetty造成的问题,而是您的web应用程序。自jetty 7.5.4以来,jetty已有180多个稳定版本(2个主要的servlet api修订版和7个主要版本发布)。