多个线程使用ScheduledExecutorService以固定间隔并行运行

Adi*_*tia 4 java concurrency multithreading executorservice scheduledexecutorservice

目标:每5秒监视5个json URL,其中5个线程并行运行.

我想运行多个并行线程来监视JSON URL,每个时间间隔为n秒.我正在使用ScheduledExecutorService这个.

ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);

for(NetworkBwXmlObject x : xmlDsList) {
    executor.scheduleAtFixedRate(new processJsonUrl(x.getJsonUrl(),x.getId(), ctx), 0, 5, TimeUnit.SECONDS);
}

class processJsonUrl implements Runnable {

}
Run Code Online (Sandbox Code Playgroud)

这是创建5个线程来监控5个URL的正确方法.我不想在这里使用线程池.所有5个线程必须处于活动状态,直到应用程序的生命周期.

可以ScheduledExecutorService帮助我的方案或有另一种方法来实现这一目标?

谢谢

Pet*_*rey 5

ScheduledExecutorService是一个线程池,它将执行您想要的操作.


the*_*o_r 1

我将使用 Quartz 来实现这一点,这是一种实现涉及计划任务的良好解决方案的简单方法: http ://quartz-scheduler.org/