Java多线程与并发库高级应用-传统定时器技术回顾
2016-11-04 00:05
826 查看
传统定时器技术回顾(jdk1.5以前)
还有一种方式,定义两个定时器
public class TraditionalTimerTest { static int count = 0; public static void main(String[] args) { //10秒后开始执行,每隔3秒执行一次 new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("bombing..."); } }, 10000,3000); /** * 需求:2秒,4秒间隔执行定时任务 */ class MyTimerTask extends TimerTask{ @Override public void run() { count = (count+1)%2; System.out.println("bombing..."); new Timer().schedule(new MyTimerTask(), 2000 + 2000*count); } } new Timer().schedule(new MyTimerTask(), 2000); while(true){ try { System.out.println(new Date().getSeconds()); Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //对于较复杂的业务,周一~周五执行任务,周六日不执行
//quartz } }
还有一种方式,定义两个定时器
public class TimerTask1 extends TimerTask{ @Override public void run() { System.out.println("bombing..."); new Timer().schedule(new MyTimerTask2(), 4000); } }
public class MyTimerTask2 extends TimerTask{ @Override public void run() { System.out.println("bombing..."); new Timer().schedule(new TimerTask1(), 2000); } }
new Timer().schedule(new TimerTask1(), 2000); while(true){ System.out.println(new Date().getSeconds()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }
相关文章推荐
- 【Java多线程与并发库】2.传统定时器技术回顾
- Java多线程与并发库高级应用-传统线程机制回顾
- Java多线程与并发库高级应用-传统线程同步通信技术
- 多线程并发库高级应用 之 传统定时器、互斥、同步通信技术
- 多线程并发库高级应用 之 传统定时器、互斥、同步通信技术
- 多线程并发库高级应用 之 传统定时器、互斥、同步通信技术
- 多线程并发库高级应用 之 传统定时器、互斥、同步通信技术
- 【Java多线程与并发库】2.传统定时器技术回顾
- Java多线程与并发库高级应用-传统线程互斥技术
- 【Java多线程与并发库】1.传统线程技术回顾
- 多线程并发库高级应用 之 使用java5中同步技术的3个面试题
- Java多线程与并发应用-(3)-传统线程通信技术及生产者消费者模式
- 【Java多线程与并发库】02 传统定时器技术
- 多线程并发库高级应用 之 使用java5中同步技术的3个面试题
- Java并发库(二):传统定时器技术回顾
- 多线程并发库高级应用 之 java5中的线程并发库--线程锁技术
- 【Java多线程与并发库】1.传统线程技术回顾
- 多线程并发库高级应用 之 java5中的线程并发库--线程锁技术
- Java多线程与并发应用-(4)-传统线程通信技术试题
- 多线程并发库高级应用 之 使用java5中同步技术的3个面试题