1

我正在开发一个现有的 Java EE 多线程应用程序。

我无法在我的应用程序中理解这件事。有一个名为 的线程 UserThread,在其run方法的while(true)条件下,它从一个位置读取数据并将数据推送到 Websocket。之后,线程休眠 1000 秒。

为什么这Thread.sleep()很有用?

4

2 回答 2

8

听起来它只是用来限制读取和/或写入以避免一次发送太多请求。

于 2012-09-11T12:28:38.767 回答
4

它正在模拟一个计时器,每 x 秒执行一次任务,这是非常糟糕的做法。考虑切换到java.util.Timeror ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);

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