你能建议我用于调度独立并行任务的算法吗?每个任务都有运行时和频率。此外,还有可以并行执行的最大任务数。
答案 0 :(得分:0)
我不知道你可能想要用“算法”做什么,大多数实际的算法工作都是通过线程在JVM中以非常低的水平完成的,当你进入它时,它会变得非常复杂(到了你正在查看实际物理处理器正在做什么的那一点。
您可能感兴趣的是已经为此提供Java核心库的工具:
您可以使用任意数量的Thread
,每个ThreadPoolExecutor
可以承担部分工作量;您还可以安排批量较小的任务在具有ExecutorService
的固定数量的线程上运行,这些线程可以提供任意数量的任务,然后只要有特定数量的线程就可以执行这些任务。
如果您确实需要安排/延迟这些任务,您还可以使用ScheduledThreadPoolExecutor
的其他变体,例如{{3}},它可以执行甚至重新执行各种命令。用有限的线程池确定延迟。
除非您以某种方式几乎无法访问基本Java库,否则强烈建议您使用这些或类似的东西,因为它们可能更省力,更可靠,并且可能比自己重新发明轮子更快。
答案 1 :(得分:0)
使用Quartz Schedular。它使您能够安排N个并行作业,每个作业具有独立的启动延迟和重复频率。此外,您还可以为自己的任务执行cron作业。您可以使用war或jar或从简单的java类'main function
部署它