如何在一定时间后重复调用一个函数

Fis*_*sel 7 java

我想创建一个在一定时间后调用的函数.此外,这应该在相同的时间后重复.例如,可以每60秒调用该函数.

hmj*_*mjd 10

使用java.util.Timer.scheduleAtFixedRate()java.util.TimerTask是一个可能的解决方案:

Timer t = new Timer();

t.scheduleAtFixedRate(
    new TimerTask()
    {
        public void run()
        {
            System.out.println("hello");
        }
    },
    0,      // run first occurrence immediatetly
    2000)); // run every two seconds
Run Code Online (Sandbox Code Playgroud)


Tud*_*dor 9

为了重复调用方法,您需要使用在后台运行的某种形式的线程.我建议使用ScheduledThreadPoolExecutor:

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
           public void run() {
                // code to execute repeatedly
           }
       }, 0, 60, TimeUnit.SECONDS); // execute every 60 seconds
Run Code Online (Sandbox Code Playgroud)