1

私は既存のJavaEEマルチスレッドアプリケーションに取り組んでいます。

私は自分のアプリケーションでこのことを理解することができません。、という名前のスレッドが1つ UserThreadあり、そのrunメソッドのwhile(true)状態では、ある場所からデータを読み取り、そのデータをWebsocketにプッシュします。その後、スレッドは1000秒間スリープします。

なぜこれがThread.sleep()便利なのですか?

4

2 に答える 2

8

一度に多くのリクエストを送信しないように、読み取りや書き込みを調整するために使用されているようです。

于 2012-09-11T12:28:38.767 に答える
4

これはタイマーをエミュレートし、x秒ごとにタスクを実行します。これは非常に悪い習慣です。java.util.Timerまたはに切り替えることを検討してくださいScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);

exec.scheduleAtFixedRate(
      new Runnable() {
          public void run() {
               // code
          }
      }, 0, 1000, TimeUnit.Milliseconds);
于 2012-09-11T12:29:48.823 に答える