Java并发执行线程任务

标签 java concurrency timer schedule

我有一项任务需要按计划执行。 (它基本上轮询数据库以查找更改,然后根据结果执行代码)。问题是我需要轮询任务发生,即使它已经在执行。

到目前为止,我已尝试将 Timer/TimerTask 组合与 scheduleAtFixedRate() 方法结合使用,并将 ScheduledThreadPoolExecutor/Thread 组合与 scheduleAtFixedRate() 方法结合使用。

两者都等待当前计划任务完成,然后再运行下一个。我需要能够安排一个任务每 5 秒运行一次,并且即使任务的最后一次执行尚未完成,它也会运行。

有什么想法吗?

最佳答案

如何使用一个 Timer 作为“启动”计时器,然后使用一个单独的线程池来执行:当计时器计时时,您将任务提交到线程池以立即执行。 (您可能希望调整线程池以同时运行一些最大数量的任务。)

关于Java并发执行线程任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3650619/

相关文章:

ios - 在定时器中运行 UIView.animate

java - CloudBees、可用区和灾难恢复

Java子类构造函数继承成员

mysql query - 峰值并发调用 CDR 数据

java - 在一个类中使用 ActionListener 来启动另一个类中的计时器

timer - BlackBerry 10 中是否有计时器可以在指定的时间间隔后运行您的功能?

java - 获取 JAR 文件的位置

java - Utils 类中的自定义 Toast

java - 从 UI JavaFX 监听后台线程

Java:与 HikariDataSource 对象的并发