あいまいなタイトルで申し訳ありません - これをタイトルとしてどのように表現すればよいか思いつきませんでした。
基本的に、Java で単純なサーバー/クライアント プログラムを作成して遊んでいます。私のサーバーはスレッドを実行して新しい接続を常にチェックし、接続が見つかった場合は、その接続のためだけにスレッドと接続オブジェクトを作成します。
問題は、新しい接続をチェックするスレッドで発生します-エラーチェックを開始し、次の行に追加するまで、機能しませんでした:
System.out.println("");
突然、正常に動作するようになりました。この行を削除すると、接続用に新しいスレッドが追加されなくなります。スレッドが適切に実行されるのに十分な遅延を提供していると思ったので、しばらく for ループに入れて、それが機能するかどうかを確認しましたが、その単純な行以外は何も機能していません。
新しい接続スレッドを作成するためのコードは次のとおりです。
class ThreadCreator implements Runnable {
ThreadCreator() {
}
public void run() {
while(true) {
System.out.println("WHY DOES THIS WORK??");
for(int i = 0; i < connections.size(); i++) {
if(connections.get(i).thread == false) {
Runnable ReadRunnable = new Read(connections.get(i));
Thread ReadThread = new Thread(ReadRunnable, "MWHAHAH");
ReadThread.setPriority(Thread.MAX_PRIORITY);
ReadThread.start();
connections.get(i).thread = true;
System.out.println("THREAD CREATED");
}
}
}
}
}
何がうまくいかないのか想像できません..?