java基础——多线程(传统定时器)
2013-10-14 20:37
381 查看
一、定时器的应用
1、Timer类
2、TimerTask类
启动定时器的代码,过10秒钟后启动定时器,然后每过1秒定时器执行一次,前面的两个线程是每两秒钟暂停一次,这样很便于观察运行效果。
例子:
定时器的比喻用定时炸弹及炸弹第一次爆炸多久后继续爆炸的比喻说明,例如,东突恐怖组织定于几年几月几日几时几分几秒启动炸弹去炸鸟巢,等待救援警察赶到时,再次发生爆炸,结果把救援的警察也一锅端了。
打印:
bombing
36
37
bombing
38
39
40
41
bombing
42
43
bombing
注:quartz也是定时有关的。
1、Timer类
2、TimerTask类
启动定时器的代码,过10秒钟后启动定时器,然后每过1秒定时器执行一次,前面的两个线程是每两秒钟暂停一次,这样很便于观察运行效果。
例子:
定时器的比喻用定时炸弹及炸弹第一次爆炸多久后继续爆炸的比喻说明,例如,东突恐怖组织定于几年几月几日几时几分几秒启动炸弹去炸鸟巢,等待救援警察赶到时,再次发生爆炸,结果把救援的警察也一锅端了。
new Timer().schedule( new TimerTask(){ public void run() { System.out.println(Thread.currentThread().getName()); } }, 10000, 1000);
/*需求二、每2秒或者4秒切换爆炸*/ class MyTimerTask extends TimerTask{ //这个MyTimerTask继承TimerTask private int count; //count用于得0、1 @Override public void run() { count = (count+1)%2; System.out.println("bombing"); new Timer().schedule(new MyTimerTask(), 2000+2000*count);//间隔2或4秒爆炸 } } new Timer().schedule(new MyTimerTask(), 2000);//定时器入口,参数一是用上面定义的MyTimerTask while (true) { //这个循环用于打印出定时器每秒的 System.out.println(new Date().getSeconds()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
打印:
bombing
36
37
bombing
38
39
40
41
bombing
42
43
bombing
注:quartz也是定时有关的。
相关文章推荐
- java基础——多线程(传统定时器)
- Java多线程与并发库高级应用-传统定时器技术回顾
- 【Java多线程与并发库】02 传统定时器技术
- Java基础进阶_day16_(多线程,互斥锁,线程池,定时器,设计模式)
- 【Java多线程与并发库】2.传统定时器技术回顾
- 02_张孝祥_Java多线程_传统定时器Timer
- java基础——多线程(两种传统方式)
- java基础巩固笔记(5)-多线程之传统多线程
- Java多线程基础(三)Java传统线程互斥技术
- 【Java多线程与并发库】2.传统定时器技术回顾
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- java基础——多线程(两种传统方式)
- 黑马程序员——Java基础---传统多线程
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- Java多线程基础(四)Java传统线程同步通信技术
- java基础--30.定时器--实现调度
- 【Java基础之多线程】代码库(二)
- JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天
- JAVA多线程和并发基础面试问答