另一种可能性是使用
ScheduledThreadPoolExecutor。
您可以实现一个
Runnable包含您的逻辑并将其注册到
ScheduledExecutorService,如下所示:
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);executor.scheduleAtFixedRate(myRunnable, 0, 5, TimeUnit.SECONDS);
上面的代码
ScheduledThreadPoolExecutor在其池中创建一个具有10个线程的线程,并对其进行了
Runnable注册,该注册将在5秒内立即开始运行。
要安排可运行时间,可以使用:
scheduleAtFixedRate
创建并执行一个周期性 *** 作,该 *** 作将在给定的初始延迟后首先启用,然后在给定的时间段内启用;也就是说执行将在initialDelay,initialDelay
+ period,initialDelay + 2 * period等之后开始。
scheduleWithFixedDelay
创建并执行一个周期性动作,该动作在给定的初始延迟后首先启用,然后在一个执行的终止与下一个执行的开始之间具有给定的延迟。
And
here
you can see the advantages of
ThreadPoolExecutor, in order to see if it fits
to your requirements. I advise this question: Java Timer vs
ExecutorService? too in order to
make a good decision.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)