多线程学习----定时器(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/havebeenstand/article/details/83445209

1.创建一个定时器,执行某个任务,第一次执行在10s钟以后,之后每隔1s钟执行一次。

	new Timer().schedule(new TimerTask() {
			@Override
			public void run() {
				System.out.println("bombbang");
			}
		}, 10000,1000);

schedule方法,第一个参数为要执行的任务,第二个为延迟执行时间,第三个为执行间隔时间。

2.创建一个定时任务:任务创建后2s后执行一次,然后4s执行一次,然后再2s执行一次,然后再4s。。。。。

代码实现方式一:

public static int count = 0;
	
	public static void main(String[] args) {
		
		class MyTimer extends TimerTask{

			@Override
			public void run() {
				count = (count+1)%2;
				System.out.println("bombbang");
				new Timer().schedule(new MyTimer(),count == 1 ? 4000:2000);
			}
		}
		
		new Timer().schedule(new MyTimer(), 2000);

代码实现方式二:

class MyTimer extends TimerTask{

	@Override
	public void run() {
		
		System.out.println("bombbang");
		new Timer().schedule(new MyTimer1(),4000);
	}
}

class MyTimer1 extends TimerTask{

	@Override
	public void run() {
		System.out.println("bombbang");
		new Timer().schedule(new MyTimer(),2000);
	}
}

public class TimeStudy {
	
	
	public static void main(String[] args) {
		
		//启动定时任务,第一次执行2s以后
		new Timer().schedule(new MyTimer(), 2000);
    }
}

高级应用

每天凌晨三点接收邮件!!!

猜你喜欢

转载自blog.csdn.net/havebeenstand/article/details/83445209