ソケットプログラミングにJavaを使用しています。2つの動的スレッドセットを使用しています。
最初にクライアント要求を受け入れます...クライアントごとに動的にスレッドを作成します
try (ServerSocket listener = new ServerSocket(1000)) {
while (true) {
Socket socket = listener.accept();
logger.debug(socket.getRemoteSocketAddress().toString() + " Has joined :::");
new ThreadPool(socket).start();
}
}
2つ目は、送信するクライアントパケットを受け入れ、クライアントデータを解析するための新しいスレッドを作成することです。
public void run() { // this run() in ThreadPool class
while (true) {
new parserThread();//creating new thread for parsing information
}
}
しかし、私の問題は、24時間後にアプリケーションがスタックし、コンソールに何も印刷されないことです。なぜそれが行き詰まっているのかはわかりませんが、私のコーディングアプローチにはほとんど疑問がありません。それらが可能かどうか教えてください。
- 別の動的スレッドでスレッドを作成しています。
- スレッド名の割り当ての問題は、次のように増加しているためです。
549790[スレッド-17569]
549791[スレッド-17570]
549792[スレッド-17571] - Log4jコンソールアペンダーの問題。