【发布时间】:2015-04-08 10:20:24
【问题描述】:
我需要在不使用 Timer 类的情况下定期调用一个方法。该方法将由多线程调用。
【问题讨论】:
-
请提供更多信息。理想情况下,您可以在每次迭代之间休眠的 while 循环中从每个线程调用该方法。
标签: java multithreading timer threadpool executorservice
我需要在不使用 Timer 类的情况下定期调用一个方法。该方法将由多线程调用。
【问题讨论】:
标签: java multithreading timer threadpool executorservice
您可以使用ExecutorService,如ScheduledExecutorService 及其scheduleAtFixedRate 方法。
ScheduledExecutorService exec = Executors.newScheduledThreadPool(4);
exec.scheduleAtFixedRate(
new Runnable(){
@Override
public void run() {
System.out.println("hello");
}
}
,0, 1, TimeUnit.SECONDS
//initialDelay, period, unit
);
exec.scheduleAtFixedRate(
() -> System.out.println("world"),
500, 1000, TimeUnit.MILLISECONDS
//initialDelay, period, unit
);
【讨论】:
您可以使用 Thread.sleep(milliseconds),其中 milliseconds 是以毫秒为单位的间隔。
【讨论】: