创建Timer,每隔XXXXms调用一个方法

时间:2013-05-12 16:24:42

标签: java multithreading timer sleep

我想创建一个对象,它会调用名为loadNextImage的方法,每次让我们说1000ms。我可以通过创建一个新的Thread来实现它,它将睡眠1000然后调用这个方法,但我不知道怎么做它整洁。

2 个答案:

答案 0 :(得分:1)

只需使用ScheduledExecutorService

final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleWithFixedDelay(new Runnable() {
    @Override
    public void run() {
        loadNextImage();
    }
}, 0, 1, TimeUnit.SECONDS);

这将每隔一秒运行提交的Runnable

您创建了class匿名implements Runnable,并使用run方法创建了loadNextImage()方法。

答案 1 :(得分:0)

有一个java.util.Timer类专门用于此目的:

http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html#scheduleAtFixedRate%28java.util.TimerTask,%20long,%20long%29

您只需要实现TimerTask的子类,您的重复操作将在其中执行。