java线程挂起导致其他线程挂起(续)

java线程挂起导致其他线程挂起(续),java,multithreading,Java,Multithreading,当我的测试用例挂起时,我成功地生成了线程转储。然而,这似乎不是死锁、竞争条件或资源争用。但在我的加载测试工具中运行测试用例时,它确实挂起了,有3个虚拟用户。有人能给我指一下正确的方向吗?干杯 "Servlet.Engine.Transports : 387" daemon prio=5 tid=0x15386f8 nid=0x943 waiting on monitor [0xb4781000..0xb4781a00] at java.lang.Object.wait(Native Me

当我的测试用例挂起时,我成功地生成了线程转储。然而,这似乎不是死锁、竞争条件或资源争用。但在我的加载测试工具中运行测试用例时,它确实挂起了,有3个虚拟用户。有人能给我指一下正确的方向吗?干杯

"Servlet.Engine.Transports : 387" daemon prio=5 tid=0x15386f8 nid=0x943 waiting on monitor [0xb4781000..0xb4781a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 385" daemon prio=5 tid=0x51e898 nid=0x93e waiting on monitor [0xb3281000..0xb3281a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 384" daemon prio=5 tid=0x464760 nid=0x93d waiting on monitor [0xb3381000..0xb3381a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 382" daemon prio=5 tid=0x1141de8 nid=0x8a0 waiting on monitor [0xb3581000..0xb3581a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 380" daemon prio=5 tid=0x1151ad8 nid=0x6b5 waiting on monitor [0xb3e81000..0xb3e81a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 366" daemon prio=5 tid=0x1a1d110 nid=0x3fb waiting on monitor [0xb4b81000..0xb4b81a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 365" daemon prio=5 tid=0x4e8bd8 nid=0x3fa waiting on monitor [0xb6281000..0xb6281a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 362" daemon prio=5 tid=0x17055b0 nid=0x3f7 waiting on monitor [0xb3481000..0xb3481a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 356" daemon prio=5 tid=0x1ddbae0 nid=0x3f1 waiting on monitor [0xb9c01000..0xb9c01a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

"Servlet.Engine.Transports : 299" daemon prio=5 tid=0x2519028 nid=0x3b5 waiting on monitor [0xb6001000..0xb6001a00]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:415)
    at com.ibm.ws.util.BoundedBuffer.take(BoundedBuffer.java:161)
    at com.ibm.ws.util.ThreadPool.getTask(ThreadPool.java:422)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:669)

除非您有自己的com.ibm.*类在运行,否则所有这些线程看起来都是应用程序服务器的正常“我在等待做什么”线程。你确定这是完整的线程转储吗?看起来您的测试可能已经执行并完成,容器正在等待处理…?

除非您有自己的com.ibm.*类在运行,否则所有这些线程看起来都是应用服务器的正常“我在等待处理”线程。你确定这是完整的线程转储吗?看起来您的测试可能已经执行并完成,容器正在等待做什么…?

查看代码可能会有所帮助。。。你的线程正在等待一个缓冲区,你确定它不是空的吗?我认为当前形式的问题是无法回答的。没有足够的信息。查看代码可能会有所帮助。。。你的线程正在等待一个缓冲区,你确定它不是空的吗?我认为当前形式的问题是无法回答的。没有足够的信息。谢谢你的回复,我不允许在这里粘贴所有完整的线程转储。我的运行测试最终完成了,但在它完成之前有一段长时间的不活动。测试运行了8分钟,最后3分钟没有结果。不应该一直重复web活动直到时间结束吗?谢谢你的回复,我不允许在这里粘贴所有完整的线程转储。我的运行测试最终完成了,但在它完成之前有一段长时间的不活动。测试运行了8分钟,最后3分钟没有结果。不应该一直重复网络活动直到时间结束吗?