Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计时器和计时器任务Java_Java_Timer_Timertask - Fatal编程技术网

计时器和计时器任务Java

计时器和计时器任务Java,java,timer,timertask,Java,Timer,Timertask,我希望我的程序打印Hello用户,十秒钟后打印十秒钟已经过去,最后,几秒钟后打印再见用户。我只是不知道该怎么做。谢谢 代码如下: import java.util.Timer; import java.util.TimerTask; public class S1p4 { public static void main(String[] args) { Timer timer = new Timer(); Task task = new Task();

我希望我的程序打印Hello用户,十秒钟后打印十秒钟已经过去,最后,几秒钟后打印再见用户。我只是不知道该怎么做。谢谢

代码如下:

import java.util.Timer;
import java.util.TimerTask;
public class S1p4 {
    public static void main(String[] args) {
        Timer timer = new Timer();
        Task task = new Task();
        timer.schedule(task, 1000, 1000);

}
}

类任务扩展TimerTask{
int i=1;
@凌驾
公开募捐{
i++;
System.out.println(“你好用户”);
如果(i试试这个:

class Task extends TimerTask {

    int i=0;
    @Override
    public void run() {
        i++;
        if(i==1)
            System.out.println("Hello User");
        if(i==10){
            System.out.println("Ten Seconds Have Gone By");
        }
        if(i==13){
            System.out.println("Goodbye User");
            cancel();        
        }

    }
}
o/p:

第一次打印:你好,用户 10秒后打印:10秒过去了。
13秒后:Goodby User

您使用的计时器正常,我们只需应用Thread.sleep来解决您的问题

class Task extends TimerTask {


    @Override
    public void run() {

        System.out.println("Hello User");

        try {

            Thread.sleep(10000);

            System.out.println("Ten Seconds Have Gone By");

            Thread.sleep(5000);

            System.out.println("Goodbye User");

        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }
}

是“你好用户”应该每秒打印还是只在第一次打印?@SeeTheC only first我不喜欢使用Thread.sleep,因为我将把它放在我的项目的另一个使用循环的部分。这可能会导致故障问题。你有什么其他建议。另外,谢谢你的回答。这可以用于countdonws吗?是的,你可以使用我T
class Task extends TimerTask {


    @Override
    public void run() {

        System.out.println("Hello User");

        try {

            Thread.sleep(10000);

            System.out.println("Ten Seconds Have Gone By");

            Thread.sleep(5000);

            System.out.println("Goodbye User");

        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }
}