gpt4 book ai didi

java - 间隔运行 Java 线程

转载 作者:太空狗 更新时间:2023-10-29 22:48:29 25 4
gpt4 key购买 nike

我有一个线程需要每 10 秒执行一次。该线程包含对另一台服务器上的数据库的多次调用 (12 - 15)。此外,它还访问大约 3 个文件。因此,会有相当多的 IO 和网络开销。

执行上述操作的最佳策略是什么?

一种方法是将 sleep 方法与 while 循环一起使用,但那将是一个糟糕的设计。

在这种情况下,类似于 Timer 的类会有帮助吗?另外,创建更多线程(一个用于 IO,一个用于 JDBC)而不是让它们在一个线程中运行会更好吗?

最佳答案

我发现一个 ScheduledExecutorService是一个很好的方法来做到这一点。它可以说比 Timer 稍微复杂一些,但在交换方面提供了更大的灵 active (例如,您可以选择使用单个线程或线程池;它需要的单位不仅仅是毫秒)。

ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();

Runnable periodicTask = new Runnable() {
public void run() {
// Invoke method(s) to do the work
doPeriodicWork();
}
};

executor.scheduleAtFixedRate(periodicTask, 0, 10, TimeUnit.SECONDS);

关于java - 间隔运行 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com