`
gaoc121
  • 浏览: 10987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

util Timer和swing Timer比对

阅读更多
swing Timer
package timer;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * swing timer 通过addActionListener()来增加一个任务<br>
 * 可以通过设置delay来动态控制执行频率。<br>
 * swing timer 强调执行的顺序,按addActionListener()的倒序执行
 * @author Administrator
 *
 */
public class SwingTimer extends javax.swing.Timer{
	public SwingTimer(int delay, ActionListener listener) {
		super(delay, listener);
	}

	private static final long serialVersionUID = -3852085911769548093L;
	
	public static void main(String[] args) {
		final int delay = 200;
		final int[] count = new int[10];
		
		SwingTimer st = new SwingTimer(100, null);
		for(int i=0; i<10; i++){
			final int ii = i;
			st.addActionListener( new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					count[ii]++;
					System.out.println("--run "+ii+"  "+Thread.currentThread());
					try {
						Thread.sleep(delay);
					} catch (InterruptedException ee) {
						ee.printStackTrace();
					}
				}
			});
		}
		st.start();
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e1) {
			e1.printStackTrace();
		}
		
//		st.setDelay(1000);
		try {
			Thread.sleep(3010);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		st.stop();
		
	}
}


util Timer
package timer;

import java.util.TimerTask;

/**
 * UtilTimer一旦运行,不能调整delay,若想停止单个任务,调用该任务的cancle()<br>
 * util timer 强调执行的频率,而不在乎谁先谁后
 * timer.schedule(),根据前一次执行的实际执行时间来安排每次执行,执行的频率一般要稍慢于指定周期的倒数,
 * 		如果由于任何原因(如垃圾回收或其他后台活动)而延迟了某次执行,则后续执行也将被延迟<br>
 * timer.scheduleAtFixedRate(),根据已安排的初始执行时间来安排每次执行,执行的频率将正好是指定周期的倒数,
 * 		如果由于任何原因(如垃圾回收或其他背景活动)而延迟了某次执行,则将快速连续地出现两次或更多的执行,
 * 		从而使后续执行能够“追赶上来”<br>
 * @author Administrator
 *
 */
public class UtilTimer extends java.util.Timer{
	
	public static void main(String[] args) {
		final int delay = 1;
		final int[] count = new int[10];
		UtilTimer ut = new UtilTimer();
		for(int i=0; i<10; i++){
			final int ii = i;
			TimerTask timerTask = new TimerTask() {
				@Override
				public void run() {
					
					count[ii]++;
					System.out.println("tt"+ii+"  run  "+Thread.currentThread());
					try {
						Thread.sleep(delay);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					
				}
			};
			ut.scheduleAtFixedRate(timerTask, 20, 100);//AtFixedRate
		}
		
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		ut.cancel();
		for(int l : count){
			System.out.print(l+"   ");
		}
	}
}
分享到:
评论

相关推荐

    java.util.timer实现的简单定时任务

    本篇文章将深入探讨如何使用Timer和TimerTask来实现简单的定时任务。 首先,`java.util.Timer`是一个线程类,它维护了一个调度队列,用于存储将要执行的任务。当我们创建一个Timer对象时,实际上启动了一个后台线程...

    JAVA课件 swing io util

    在实际开发中,Swing、IO和Util常常一起使用。例如,你可能会创建一个Swing GUI,让用户选择文件,然后使用IO API读取或写入文件,同时利用Util类进行数据处理。例如,可以使用`java.nio.file.Files`类的...

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

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

    swing复选框控制确认按钮置灰和进度条(Timer)例子

    在Swing应用中,使用Timer而不是java.util.Timer是因为前者与Swing事件调度线程同步,可以避免出现UI更新问题。在这个例子中,Timer可能会被用来更新进度条的值,模拟任务的进行。 具体的实现流程可能是这样的: 1....

    Java计时器Timer和TimerTask用法总结

    Timer 类位于 java.util 包中,提供了多种构造方法和方法来实现延迟执行任务。 TimerTask TimerTask 是一个抽象类,用于定义需要执行的任务。它实现了 Runnable 接口,因此可以被线程执行。TimerTask 类位于 java....

    Timer和TimerTask的使用

    ### Timer和TimerTask的使用详解 #### 一、引言 `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现...

    Spring 使用Timer quartz区别

    在处理定时任务时,Spring提供了两种常见的解决方案:`java.util.Timer` 和 Quartz。这两个工具各有特点,适用于不同的场景。下面我们将深入探讨它们的区别。 首先,`java.util.Timer` 是Java标准库中的一个简单...

    Timer-java.rar_java timer_timer_timer java

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

    Timer简单程序代码

    1. **Java中的Timer**: Java的`java.util.Timer`和`java.util.TimerTask`类组合使用可以创建定时器。`Timer`用于调度任务,`TimerTask`是可重用的轻量级任务类。例如,创建一个每秒打印一行的Timer任务,可以这样...

    定时器Timer

    在Java中,`java.util.Timer` 和 `java.util.TimerTask` 是实现定时任务的主要组件。创建一个 `Timer` 实例,然后创建一个 `TimerTask` 的子类实例,最后通过 `schedule()` 方法将任务添加到 `Timer` 中。 ```...

    简单的timer例子

    在Java编程语言中,`Timer`类是Java.util包下的一个关键组件,它提供了一种在后台线程中调度任务的能力。这个简单的“timer例子”很适合初学者学习,了解如何在程序中设置延迟执行或周期性执行任务。在这个实例中,...

    Timer定时器的使用方法

    在Java编程语言中,`java.util.Timer` 和 `java.util.TimerTask` 类是用于执行定期或延时任务的核心组件。它们允许开发者在指定的时间间隔内执行特定的操作,这对于实现定时任务,如定时备份、轮询服务或者执行周期...

    taskTimer 线程 任务

    "taskTimer 线程任务"这个主题主要关注如何利用编程语言中的线程机制来创建和管理定时执行的任务。下面我们将深入探讨这个话题。 首先,定时任务的核心在于计划任务的调度。在Java中,`java.util.Timer`类是实现...

    JavaTimer和TimerTask实例教程Java开发

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

    通过progressbar监控以timer计时控制开始与结束的任务

    在Java中,我们可以使用`java.util.Timer`和`java.util.TimerTask`类来实现定时任务。`Timer`用于计划在特定时间执行的任务,而`TimerTask`是实现了Runnable接口的类,代表了一个可由`Timer`调度的任务。通过`Timer....

    时钟Timer钟表Timer

    1. Java:Java提供java.util.Timer和java.util.concurrent.Timer类,以及ScheduledExecutorService接口来实现定时任务。 2. Python:Python的time模块提供了简单的计时功能,而threading模块则提供了更复杂的定时器...

    Timer累计计时器,利用系统时间计时 含代码注释

    在编程领域,定时器(Timer)是一个非常常见且重要的组件,尤其在实时系统、游戏开发、数据采集等场景中有着广泛的...提供的压缩包文件"Timer完成"可能包含更详细的代码实现和示例,读者可以下载后进一步学习和研究。

    java定时器timer制作

    通过`java.util.Timer`类,可以创建一个定时器对象,该对象负责调度事件。定时器可以用来执行两种类型的定时任务:一次性任务和周期性任务。 #### 一次性任务 一次性任务是指仅执行一次的任务。例如,可以在特定的...

    android定时器Timer实例

    `Timer`类是Java.util包下的一个工具类,它提供了调度任务在未来某个时间点执行的功能。虽然在Android中,我们更倾向于使用`Handler`、`ScheduledExecutorService`或`AlarmManager`来实现定时任务,但了解`Timer`的...

Global site tag (gtag.js) - Google Analytics