java的Timer和TimerTask
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的Timer和TimerTask相关的知识,希望对你有一定的参考价值。
java中Timer类使用的方法是如下的:
Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("abc"); } }, 200000 , 1000);
但是实现的原理是怎么样的。下图是Timer源码的实现方式:
总体来说,Timer中有一个TaskQueue和TimerThread。TaskQueue存放的是任务的堆,最先执行的任务放在最前面。TimerThread调用mainLoop()方法,一直循环消费TaskQueue中的TimerTask。如果Timer设置了重复执行的方法,TaskQueue中的TimerTask被消费执行的时候,又会插入一个新的TimerTask。
详细的代码分析见 http://blog.csdn.net/xieyuooo/article/details/8607220
以上是关于java的Timer和TimerTask的主要内容,如果未能解决你的问题,请参考以下文章