我正在开发一个现有的 Java EE 多线程应用程序。
我无法在我的应用程序中理解这件事。有一个名为 的线程 UserThread,在其run方法的while(true)条件下,它从一个位置读取数据并将数据推送到 Websocket。之后,线程休眠 1000 秒。
为什么这Thread.sleep()很有用?
我正在开发一个现有的 Java EE 多线程应用程序。
我无法在我的应用程序中理解这件事。有一个名为 的线程 UserThread,在其run方法的while(true)条件下,它从一个位置读取数据并将数据推送到 Websocket。之后,线程休眠 1000 秒。
为什么这Thread.sleep()很有用?
听起来它只是用来限制读取和/或写入以避免一次发送太多请求。
它正在模拟一个计时器,每 x 秒执行一次任务,这是非常糟糕的做法。考虑切换到java.util.Timeror ScheduledThreadPoolExecutor:
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(
new Runnable() {
public void run() {
// code
}
}, 0, 1000, TimeUnit.Milliseconds);