`
gaoc121
  • 浏览: 10710 次
  • 性别: 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实现的简单定时任务

    使用java.util.timer实现的简单定时任务,在实现简单一次性定时任务时,使用java.util.timer非常的简单易用,适合没有接触过quartz的新手急用。

    JAVA课件 swing io util

    JAVA课件 swing io util

    java.util.ConcurrentModificationException 异常问题详解1

    java.util.ConcurrentModificationException 异常问题详解1

    java.util.concurrent.uml.pdf

    Java并发编程工具包java.util.concurrent的UML类结构图 PDF

    Swing入门级项目学习

    swing入门小项目,适合刚学习swing的同学

    asm-util.jar

    asm-util-1.3.4.jar, asm-util-1.3.5.jar, asm-util-1.4.1.jar, asm-util-1.4.3.jar, asm-util-1.5.1.jar, asm-util-1.5.2.jar, asm-util-1.5.3.jar, asm-util-2.0.jar, asm-util-2.1.jar, asm-util-2.2.1-sources....

    使用java.util.Timer实现任务调度

    主要为大家详细介绍了使用java.util.Timer实现任务调度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    util-linux-ng-2.17源码(含fdisk)

    util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...

    swing-util

    在项目开发中写的一些swing工具类。 有时间日期控件、表格、树等。

    httpClientUtil工具类

    httpClientUtil工具类

    C语言头文件 UTIL C语言头文件 UTIL

    C语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言头文件 UTILC语言...

    chris-util 编译的util

    会用到的各种方法 各种... chris-util 编译的util

    apr-util linux 编译成功

    apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功 apr-util linux 编译成功

    backport-util-concurrent.jar

    backport-util-concurrent.jarbackport-util-concurrent.jarbackport-util-concurrent.jar

    Angular-Util.zip

    Angular-Util.zip,Util是一个.net core平台下的应用框架,旨在提升小型团队的开发输出能力,由常用公共...它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web应用程序工作流。

    kerb-util-1.0.1-API文档-中文版.zip

    赠送jar包:kerb-util-1.0.1.jar; 赠送原API文档:kerb-util-1.0.1-javadoc.jar; 赠送源代码:kerb-util-1.0.1-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    kerby-util-1.0.1-API文档-中文版.zip

    赠送jar包:kerby-util-1.0.1.jar; 赠送原API文档:kerby-util-1.0.1-javadoc.jar; 赠送源代码:kerby-util-1.0.1-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    java util工具类3

    java util工具类2java util工具类2java util工具类2java util工具类2

    jetty-util-6.1.26-API文档-中英对照版.zip

    赠送jar包:jetty-util-6.1.26.jar; 赠送原API文档:jetty-util-6.1.26-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    kerby-util-1.0.1-API文档-中英对照版.zip

    赠送jar包:kerby-util-1.0.1.jar; 赠送原API文档:kerby-util-1.0.1-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

Global site tag (gtag.js) - Google Analytics