`

【转载】java Timer TimerTask

阅读更多

1,Timer

Timer的实质上就是一个多线程,从它的类中可以看出:

private TimerThread thread = new TimerThread(queue);

它适用于与时间相关的一些操作,多长时间后运行某个动作,间隔运行某个动作。如:时钟程序我们要每一秒中就刷新一下我们的指针,如,模拟心脏的跳动,Timer都是不错的选择。

 

2,Timer的线程设置成后台线程

public class Time {
	private final Timer timer = new Timer(true); 

	public void start() {
		timer.schedule(new TimerTask() {
			public void run() {
				System.out.println("Your egg is ready!"); 
			}
		}, 1000, 1000); 
	}

	public static void main(String[] args) {
		Time eggTimer = new Time(); 
		eggTimer.start();
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

 实现了在1秒钟后,每隔一秒钟后运行一次TimerTask。这个Timer设置成的后台线程,在主线程退出后自动退出,一般的我觉得Timer都设置成后台的比较好,前段时间我就发现我写的程序退出了,怎么还有javaw.exe在任务管理器中没有退出啊,还发现我的程序运行了很多次后,在任务管理器中的javaw.exe越来越多,我的机器也就越来越慢了,噢,肯定我的程序,还没有完全推出,结果就找到了一个Timer没有退出,后来我就把我程序的所有的Timer都改后台了。Timer一般都是完成某个任务,如果没有了前台线程,它本来就没有存在的意义了,我程序中是利用的Timer去检测文件的改动,然后通知前台程序文件变了。

3,Timer运行一段时间,被cancel

public class Time {
	private final static Timer timer = new Timer(); 

	public void start() {
		timer.schedule(new TimerTask() {
			public void run() {
				System.out.println("Your egg is ready!"); 
			}
		}, 1000, 1000); 
	}

	public static void main(String[] args) {
		Time eggTimer = new Time(); 
		eggTimer.start();
		try {
			Thread.sleep(5000);
			timer.cancel();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

 

4,Timer运行5次后,被cancel

public class Time {
	private final static Timer timer = new Timer(); 

	public void start() {
		timer.schedule(new TimerTask() {
			private int count = 5;
			public void run() {
				System.out.println("Your egg is ready!");
				if(count--==0)
					timer.cancel();
			}
		}, 1000, 1000); 
	}

	public static void main(String[] args) {
		Time eggTimer = new Time(); 
		eggTimer.start();
	}
}

 

分享到:
评论

相关推荐

    JAVA定时器之Timer+TimerTask

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们构成了Java的定时执行机制。这两个类在处理周期性任务或者延迟任务时非常有用,它们可以帮助开发者实现程序在特定时间点或者按照一定间隔执行特定操作的...

    JavaTimer和TimerTask实例教程Java开发

    在Java编程语言中,`Timer`和`TimerTask`是两个重要的类,它们用于调度周期性的任务执行。这两个类属于`java.util`包,提供了在后台线程中延迟执行任务或者定期执行任务的能力,这对于创建定时任务或者实现定时器...

    Android Timer Task Demo

    这时,`TimerTask` 和 `Timer` 类就派上了用场。本篇将详细介绍如何在Android中使用`TimerTask`来实现定时任务,并通过一个简单的Demo进行示例说明。 `TimerTask`是Java提供的一个定时执行任务的类,它继承自`...

    详解JAVA Timer和TimerTask

    "详解JAVA Timer和TimerTask" JAVA Timer和TimerTask是JAVA语言中两种重要的线程设施,用于实现定时执行任务。下面将详细介绍JAVA Timer和TimerTask的概念、用法和优点。 JAVA Timer JAVA Timer是一种线程设施,...

    Java计时器Timer和TimerTask用法总结

    Java 计时器 Timer 和 TimerTask 用法总结 Java 中的计时器(Timer)和 TimerTask 是一种常用的延迟执行技术,用于实现延迟执行某个任务或事件。下面将详细介绍 Timer 和 TimerTask 的用法和实现原理。 Timer ...

    Android Timer TimerTask Handler

    `Timer`是Java提供的一个类,用于安排在后台线程中未来某个时间点运行的任务。它可以计划一次性任务或周期性任务。创建`Timer`对象后,通过`schedule(TimerTask task, long delay)`方法可以设定任务在延迟特定毫秒...

    Timer和TimerTask的使用

    `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现定时提醒、定时备份等功能非常有用。 #### 二、...

    Java中的Timer和TimerTask的使用.doc

    在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...

    Timer与TimerTask(计时器)

    在Java编程语言中,`Timer`和`TimerTask`是用于执行定时任务的重要类。这两个类通常被用来处理那些需要在指定时间或周期性执行的任务,比如定时清理缓存、定时更新数据库等场景。 #### Timer简介 `Timer`类是一个...

    Java--Timer--TimerTask--.rar_java timer

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们用于调度周期性的任务执行。这两个类在多线程环境下尤其有用,能够帮助开发者安排在将来某一特定时间或定期执行的任务。让我们深入了解一下`Timer`和`...

    java timer定时器详解(附详细代码)

    Java Timer定时器主要是通过java.util.Timer和java.util.TimerTask两个类来实现的。 Java.util.Timer类 java.util.Timer类是Java Timer定时器的核心类,它可以执行任务并且可以指定任务的执行频率。Timer类有两种...

    Java中的Timer和TimerTask简介(附完整代码实例)

    Java中的Timer和TimerTask简介(附完整代码实例)。 在Java中,Timer和TimerTask是两个经常用来实现定时器的类。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求。 Timer是一种定时器工具,用来在一...

    Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作

    下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...

    java类Timer和TimerTask的使用.doc

    java类Timer和TimerTask的使用.doc

    TimerTask与Timer设计时间监控

    在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务和调度。这两个类在处理需要定期执行的任务时非常有用,例如数据刷新、任务调度或者周期性的系统检查等。本篇文章将深入探讨`TimerTask`...

    java类Timer和TimerTask的使用.pdf

    Java中的`Timer`和`TimerTask`类是用于创建和管理定时任务的工具,它们提供了在特定时间点或按照预设间隔执行任务的功能。这两个类是Java标准库`java.util`包的一部分,对于需要定时执行操作的应用场景非常有用。 `...

    java5定时器java Timer

    通过阅读`TimerTest1.java`和`TimerTest2.java`的代码,你可以进一步了解如何在实际项目中使用`Timer`和`TimerTask`来实现特定的定时任务需求。这两个测试类可能包含了创建`Timer`实例、创建`TimerTask`实例以及调度...

    Timer,TimerTask 动态显示文字

    本篇将重点讲解如何利用`Timer`和`TimerTask`这两个工具来实现这样的功能,特别是针对`TextView`控件。 `Timer`类是Java.util包中的一个类,它提供了调度任务在未来某个时间点执行的能力。而`TimerTask`是`Timer`类...

    java_Timer_thread.rar_java thread timer_java timer_java 定时器_java

    总结,Java中的`Timer`和`TimerTask`是用于实现定时任务的基本工具,虽然它们在多线程编程中有一定的局限性,但在许多场景下仍然能够满足需求。对于更复杂的需求,可以考虑使用`ScheduledExecutorService`。了解并...

    Timer-java.rar_java timer_timer_timer java

    在Java编程语言中,`Timer`类是Java.util包下的一个关键组件,它主要用于调度周期性的任务执行。这个`Timer`类提供了定时器的功能,能够按照预设的时间间隔执行任务,比如更新UI、执行定时检查等。在描述中提到的是...

Global site tag (gtag.js) - Google Analytics