运行两次后停止ScheduledExecutorService?

时间:2017-06-27 19:34:53

标签: java

我试图让一些代码只执行2次,每次执行之间的延迟为500微秒。

到目前为止,我已使用ScheduledExecutorServiceint counter来跟踪ExecutorService运行我的代码的次数,但我想知道这是否是一个好方法,如果有的话更好的方式:

private void dingdong() {

    ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
    exec.scheduleAtFixedRate(new Runnable() {
        int count;

        @Override
        public void run() {
            count++;

            //TODO operation

            if (count == 2) {
                exec.shutdownNow();
            }
        }
    }, 0, 500, TimeUnit.MICROSECONDS);

}

1 个答案:

答案 0 :(得分:1)

我认为ExecutorService太过分了。如果您只使用普通的Thread,它可以运行您的操作,休眠并再次运行它。

new Thread(() -> {
    doTheThing();
    TimeUnit.MICROSECONDS.sleep(500);
    doTheThing();
}).start();