Java多线程_定时器Timer

方法schedule(TimerTask task,Date time)

该方法的作用就是在指定日期执行一次某任务。
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run1 {
    
    
    private static Timer timer = new Timer();

    public static void main(String[] args) throws ParseException {
    
    
        TimerTask task = new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("运行了,时间为:" + new Date());
            }
        };
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2021-10-31 17:57:00";
        Date date = sdf.parse(dateString);
        System.out.println("dateString : " + date.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.schedule(task, date);
    }
}

在这里插入图片描述
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run1TimerIsDaemon {
    
    
    private static Timer timer = new Timer(true);
    public static void main(String[] args) throws ParseException {
    
    
        TimerTask task = new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("运行了,时间为:" + new Date());
            }
        };
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2021-10-31 17:55:00";
        Date date = sdf.parse(dateString);
        System.out.println("dateString : " + date.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.schedule(task, date);
    }
}

dateString : 2021 Oct 31 18:00:20 CurrentDate : 2021 Oct 31 18:00:10

在这里插入图片描述
在这里插入图片描述

方法schedule(TimerTask task,Date firstTime,long period)

该方法是在指定日期后,按照指定的间隔周期性地无限循环地执行某一任务。
在这里插入图片描述
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        TimerTask task = new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("运行了,时间为:" + new Date());
            }
        };
        Timer timer = new Timer();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2021-11-1 10:21:00";
        Date date = sdf.parse(dateString);
        System.out.println("dateString : " + date.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.schedule(task, date, 4000);
    }
}

在这里插入图片描述
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run2_1 {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        TimerTask task = new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("A运行了,时间为: " + new Date());
                try {
    
    
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
    
    
                    e.printStackTrace();
                }
                System.out.println("A结束了,时间为: " + new Date());
            }
        };
        Timer timer = new Timer();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2021-11-1 10:28:00";
        Date date = sdf.parse(dateString);
        System.out.println("dateString : " + date.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.schedule(task, date,4000);
    }
}

在这里插入图片描述
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run2 {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        Timer timer = new Timer();
        TimerTask task1 = new TimerTask() {
    
    
            private int count = 0;
            @Override
            public void run() {
    
    
                System.out.println("A运行了,时间为: " + new Date());
                count++;
                if (count == 5) {
    
    
                    this.cancel();
                }
            }
        };
        TimerTask task2 = new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("B运行了,时间为: " + new Date());
            }
        };
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2021-11-1 10:38:00";
        Date date = sdf.parse(dateString);
        System.out.println("dateString : " + date.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.schedule(task1, date, 4000);
        timer.schedule(task2, date, 4000);
    }
}

在这里插入图片描述
在这里插入图片描述

方法schedule(TimerTask task,long delay)

在这里插入图片描述

方法schedule(TimerTask task,long delay,long period)

在这里插入图片描述

方法scheduleAtFixedRate(TimerTask task,Date firstTime,long period)

在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run3 {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
    
    
            private int count = 0;
            @Override
            public void run() {
    
    
                System.out.println("1 Begin 运行了,时间为:" + new Date());
                try {
    
    
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
    
    
                    e.printStackTrace();
                }
                System.out.println("1   End 运行了,时间为:" + new Date());
                count++;
                if (count == 5) {
    
    
                    timer.cancel();
                }
            }
        };
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString1 = "2021-11-1 11:04:00";
        Date date1 = sdf.parse(dateString1);
        System.out.println("dateString 1 : " + date1.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());
        timer.scheduleAtFixedRate(task, date1, 3000);        
    }
}

在这里插入图片描述
在这里插入图片描述

package multiply.com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Run4 {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
    
    
            private int count = 0;
            @Override
            public void run() {
    
    
                System.out.println("1 Begin 运行了,时间为:" + new Date());
                try {
    
    
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
    
    
                    e.printStackTrace();
                }
                System.out.println("1   End 运行了,时间为:" + new Date());
                count++;
                if (count == 5) {
    
    
                    timer.cancel();
                }
            }
        };
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString1 = "2021-11-1 11:08:00";
        Date date1 = sdf.parse(dateString1);
        System.out.println("dateString 1 : " + date1.toLocaleString() + " CurrentDate : " + new Date().toLocaleString());        
        timer.scheduleAtFixedRate(task, date1, 2000);
    }
}

在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_42148307/article/details/121067389