首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring应用程序挂起所有处于阻塞状态的线程

Spring应用程序挂起所有处于阻塞状态的线程
EN

Stack Overflow用户
提问于 2022-03-25 01:56:03
回答 1查看 578关注 0票数 0

我面临一个问题,在这个问题中,我的spring引导应用程序的所有线程都处于阻塞状态。服务器很长一段时间运行良好,突然挂起。下面是线程转储:

代码语言:javascript
复制
Thread 227: (state = IN_NATIVE)
 - sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(long, int, int[], int[], int[], long) @bci=0 (Compiled frame; information may be imprecise)
 - sun.nio.ch.WindowsSelectorImpl$SubSelector.poll() @bci=43 (Compiled frame)
 - sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(sun.nio.ch.WindowsSelectorImpl$SubSelector) @bci=1 (Compiled frame)
 - sun.nio.ch.WindowsSelectorImpl.doSelect(long) @bci=63 (Compiled frame)
 - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37 (Compiled frame)
 - sun.nio.ch.SelectorImpl.select(long) @bci=30 (Compiled frame)
 - sun.nio.ch.SelectorImpl.select() @bci=2 (Compiled frame)
 - org.eclipse.jetty.io.ManagedSelector$SelectorProducer.select() @bci=64, line=422 (Compiled frame)
 - org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce() @bci=20, line=359 (Compiled frame)
 - org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask() @bci=4, line=357 (Compiled frame)
 - org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(boolean) @bci=1, line=181 (Compiled frame)
 - org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(boolean) @bci=134, line=168 (Compiled frame)
 - org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run() @bci=2, line=126 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run() @bci=203, line=366 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(java.lang.Runnable) @bci=1, line=765 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool$2.run() @bci=104, line=683 (Compiled frame)
 - java.lang.Thread.run() @bci=11 (Compiled frame)


Thread 226: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(long, java.util.concurrent.TimeUnit) @bci=97 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait() @bci=97, line=292 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run() @bci=188, line=357 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(java.lang.Runnable) @bci=1, line=765 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool$2.run() @bci=104, line=683 (Compiled frame)
 - java.lang.Thread.run() @bci=11 (Compiled frame)


Thread 225: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=78 (Compiled frame)
 - org.eclipse.jetty.util.BlockingArrayQueue.poll(long, java.util.concurrent.TimeUnit) @bci=57, line=392 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll() @bci=12, line=656 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.access$800(org.eclipse.jetty.util.thread.QueuedThreadPool) @bci=1, line=49 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool$2.run() @bci=358, line=720 (Compiled frame)
 - java.lang.Thread.run() @bci=11 (Compiled frame)


Thread 224: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=78 (Compiled frame)
 - org.eclipse.jetty.util.BlockingArrayQueue.poll(long, java.util.concurrent.TimeUnit) @bci=57, line=392 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll() @bci=12, line=656 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.access$800(org.eclipse.jetty.util.thread.QueuedThreadPool) @bci=1, line=49 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool$2.run() @bci=358, line=720 (Compiled frame)
 - java.lang.Thread.run() @bci=11 (Compiled frame)


Thread 223: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(long, java.util.concurrent.TimeUnit) @bci=97 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait() @bci=97, line=292 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run() @bci=188, line=357 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(java.lang.Runnable) @bci=1, line=765 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool$2.run() @bci=104, line=683 (Compiled frame)
 - java.lang.Thread.run() @bci=11 (Compiled frame)


Thread 221: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=78 (Compiled frame)
 - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=124 (Compiled frame)
 - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=1 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=149 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=26 (Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5 (Interpreted frame)
 - java.lang.Thread.run() @bci=11 (Interpreted frame)


Thread 1: (state = BLOCKED)


Thread 220: (state = BLOCKED)
 - org.springframework.web.socket.adapter.AbstractWebSocketSession.checkNativeSessionInitialized() @bci=4, line=94 (Compiled frame)
 - org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(org.springframework.web.socket.WebSocketMessage) @bci=1, line=99 (Compiled frame)
 - com.example.SocketHandler.sendMessage(org.springframework.web.socket.WebSocketSession, java.lang.String, boolean) @bci=22, line=32 (Compiled frame)
 - com.example.RequestProcessor.handleRequest(org.springframework.web.socket.WebSocketSession, org.springframework.web.socket.TextMessage) @bci=620, line=123 (Compiled frame)
 - com.example.RequestProcessor.run() @bci=36, line=55 (Interpreted frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4 (Interpreted frame)
 - java.util.concurrent.FutureTask.run() @bci=42 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=95 (Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5 (Interpreted frame)
 - java.lang.Thread.run() @bci=11 (Interpreted frame)

我在应用程序中使用带有默认配置的jetty服务器。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-03-25 10:48:30

在该列表中的线程池中有空闲线程。

这些任务正在等待需要线程的任务,并且不会被阻塞。

示例1:-等待保留的线程池线程。

代码语言:javascript
复制
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(long, java.util.concurrent.TimeUnit) @bci=97 (Compiled frame)
 - org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait() @bci=97, line=292 (Compiled frame)

示例2: QTP空闲作业轮询。

代码语言:javascript
复制
 - org.eclipse.jetty.util.BlockingArrayQueue.poll(long, java.util.concurrent.TimeUnit) @bci=57, line=392 (Compiled frame)
 - org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll() @bci=12, line=656 (Compiled frame)

不要在“处于阻塞状态的所有线程”中包含这些类型的线程。

你的拷贝/粘贴中的7条线..。

  • 1使用网络行为(不知道它是客户端还是服务器端)
  • 1使用春季websocket行为(看起来像客户端)
  • 5在线程池中空闲,等待任务执行
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71611329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档