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

时间:2012-02-09 05:58:27

标签: 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 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)

1 个答案:

答案 0 :(得分:0)

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