0

接続チェックスレッドを実装しました。大量のトラフィックを作成したときに、多くの「ConnWatchdogThread」インスタンスがあることに気付きました。「continue」ステートメントは、中断されたスレッドをライブでトリガーし、その場合、新しい「ConnWatchdogThread」が作成されると思います。もしそうなら、これはどのように起こりますか?スレッドはどのように中断されますか?

 private class ConnWatchdog extends Thread {

 public ConnWatchdog(){
 setName("ConnWatchdogThread");
 }
      private void checkConnections() {

   //connection check 
      }

      @Override
      public void run() {

         while (true) {
            try {
               Thread.sleep(checkPeriod);
            } catch (InterruptedException e) {
//              e.prinstackTrace()

               continue;
            }

            try {

               this.checkConnections();

            } catch (Throwable t) {

            }

         }

      }
   }
4

3 に答える 3

0

新しいスレッドを作成する唯一の方法は、new Thread(...). 続行すると、割り込みが無視され、もう少し長くスリープします。

割り込みは特別なフラグです (ただし、基本的には単なるフラグです) interrupt()。 Thread を使用すると、一部のメソッドがブロックしている場合でも、InterruptedException がスローされます。トリガーされると、フラグはリセットされます。

完全に機能していないコードでスローされた例外/エラー esp を無視することは、通常は悪い考えです。

于 2014-11-04T13:55:06.973 に答える