ScheduledExecutorService等待在倒计时之前执行任务

时间:2015-08-10 18:49:23

标签: java java-8

有一个例子:

    public class Test {

    public static void main(String[] args) {
        new Test().test();
    }

    public void test() {
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> {
            print("Pre");
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            print("Post");
        }, 2, 2, TimeUnit.SECONDS); // Start relax time every time that work time is over
    }

    private void print(String m) {
        System.out.println(new SimpleDateFormat("mm:ss").format(Calendar.getInstance().getTime()) + " / " + m);
    }

}

输出:

39:35 / Pre
39:39 / Post
39:39 / Pre

我的问题是时间直到下一个任务开始计算,直到完成上一个任务。 那么,我想在输出中看到什么:

39:35 / Pre
39:39 / Post
39:41 / Pre

有什么想法吗?

0 个答案:

没有答案