调度java.util.timer是否退出该计时器';什么是timerTask方法?

调度java.util.timer是否退出该计时器';什么是timerTask方法?,java,timer,Java,Timer,假设我有一个类似这样的类: import javax.swing.*; import java.util.*; public class MyClass extends JFrame { private java.util.Timer timer = new java.util.Timer(); ... private class MyTimerTask extends TimerTask { @Override public void run() { d

假设我有一个类似这样的类:

import javax.swing.*;
import java.util.*;
public class MyClass extends JFrame
{
private java.util.Timer timer = new java.util.Timer();
...
private class MyTimerTask extends TimerTask
{
    @Override
    public void run()
    {
        doStuff();

        if (conditionIsMet())
        {
            timer.schedule(new MyTimerTask(), 1000);
        }
        else
        {
            timer.schedule(new MyTimerTask(), 500);
        }
    }
}
}
现在我一直认为
TimerTask
的run方法有点像循环。它运行一次,然后,如果您想再次运行它,可以通过调用
schedule
来实现。所以我的问题是:当我调用
timer.schedule()
时,它是否执行
TimerTask
中的任何其他代码,或者它是否像我在循环中使用
break
一样工作?如果我写的方法是这样的:

    @Override
    public void run()
    {
        doStuff();

        if (conditionIsMet())
        {
            timer.schedule(new MyTimerTask(), 1000); // method wouldn't end after this call
        }

        timer.schedule(new MyTimerTask(), 500);
    }

它的功能是否相同?

调度计时器任务只是一个方法调用;它不会导致计时器任务的run()方法的当前执行结束,因此不会,这两个代码示例的功能不同。最好使用两个代码示例中的第一个,在run方法中只安排一次任务。

因此答案是否定的