當我的測試用例掛起時,我設法生成線程轉儲。但是,它似乎並不是一個僵局,一個競爭條件或資源爭奪。但是在3個虛擬用戶的加載測試工具中運行測試用例時,它確定掛起。任何人都可以在這裏指出我正確的方向?乾杯java線程掛起導致其他線程掛起(續)
"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)
看到代碼可能有幫助......你的線程正在等待一個緩衝區,你確定它不是空的? – Dmitri 2012-02-09 06:03:31
我認爲目前形式的問題是無法回答的。根本沒有足夠的信息。 – NPE 2012-02-09 09:22:08