UDPパケット用のJavaのパケットリスナースレッドと、2〜3の他のスレッドがあります。
今日まで正常に動作していましたが、現在、プロセス javaw.exe が一定の 50% の CPU を使用し始めています。
これが私のコードです。
public class PacketListenerThread implements Runnable {
private SocketAddress receivedSocketAddress;
private DatagramChannel channel;
private ExecutorService pool;
public PacketListenerThread(DatagramChannel channel, ExecutorService pool) {
this.channel = channel;
this.pool = pool;
}
@Override
public void run() {
while (true) {
receivedSocketAddress = null;
ByteBuffer recvbuf = ByteBuffer.allocate(1400);
recvbuf.clear();
try {
receivedSocketAddress = channel.receive(recvbuf);
} catch (IOException e) {
e.printStackTrace();
}
if (receivedSocketAddress != null) {
pool.submit(new PacketHandlerRunnable(new TaskObject(receivedSocketAddress, recvbuf)));
}
}
}
}
他のすべてのスレッドを停止しましたが、このスレッドはまだ "CONSTANT" 50% CPU を使用しています。