DatagramSocket.receive无限阻塞,占用线程,导致一段时间过后线程全部被占用
在项目中遇到一个问题,同一套程序,在其他机器上能够正常运行,但是在某台特定的机器上发生了这种情况,查看dump文件,线程全卡在了这个地方,soTimeout有设置3秒,想请教一下各位遇到过这种情况吗,该怎么解决
"pool-1-thread-23-FastReceiver" prio=10 tid=0x000000004dfd9000 nid=0x639c runnable [0x0000000059499000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainDatagramSocketImpl.receive0(Native Method)
- locked <0x00000000ff8600b0> (a java.net.PlainDatagramSocketImpl)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:145)
- locked <0x00000000ff8600b0> (a java.net.PlainDatagramSocketImpl)
at java.net.DatagramSocket.receive(DatagramSocket.java:725)
- locked <0x00000000f432adb0> (a java.net.DatagramPacket)
- locked <0x00000000ff860100> (a java.net.DatagramSocket)
at org.opennms.protocols.snmp.SnmpPortal$Receiver$1.run(SnmpPortal.java:467)
at java.lang.Thread.run(Thread.java:662)