gpt4 book ai didi

java - 此堆栈转储是否表明我遇到了死锁?

转载 作者:行者123 更新时间:2023-11-29 10:08:03 24 4
gpt4 key购买 nike

我有一个使用 Jersey 构建的 REST 服务.

当我对我的 REST API 执行“curl”时,命令挂起。

我运行了 jstack,这是两个处于 BLOCKED 状态的线程的汇总输出。

"pool-2-thread-11" prio=6 tid=0x01d51800 nid=0x2394 
waiting for monitor entry [0x05e6f000..0x05e6fce8]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.moi.DefaultImageProcessor$DownloadAndScaleCallable.call(
DefaultImageProcessor.java:168)
- waiting to lock <0x257aa440>
(com.moi.ImageUriMutexImpl$MutexImpl)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:885)

"pool-2-thread-10" prio=6 tid=0x01d51000 nid=0x18d0
waiting for monitor entry [0x05e1f000..0x05e1fd68]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.moi.DefaultImageProcessor$DownloadAndScaleCallable.call(
DefaultImageProcessor.java:168)
- waiting to lock <0x257aa6b8>
(com.moi.ImageUriMutexImpl$MutexImpl)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:885)

我想知道如何阅读这个堆栈转储。我应该在死锁中寻找什么迹象?

更新 我解决了我的问题!基本上我在同步块(synchronized block)内执行 HttpClient 4.0 GET。 HttpClient 表现不佳并且没有返回并且它持有锁。通过 jstack,有几个线程持有导致上述问题的锁。我现在明白了,这不是死锁,而是我的同步块(synchronized block)返回时间太长。

最佳答案

从小堆栈跟踪来看,线程只是在等待获取锁。在跟踪中查找对象 0x257aa440 和 0x257aa6b8 并查看谁锁定了这些对象。检查该线程是否被阻塞。

在死锁情况下,您会看到一个完整的圆圈表示阻塞状态。还要多次跟踪以确认阻塞状态是暂时的还是长时间的等待。

关于java - 此堆栈转储是否表明我遇到了死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1611314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com