- 时间:2022-12-03 14:23 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:浅谈Timer和TimerTask与线程的关系
1. Timer是一个定时器,它可以根据指定的时间,指定的执行周期来执行固定的任务TimerTask,例子如下:
[img]http://files.jb51.net/file_images/article/201703/201703301035515.jpg[/img]
[b]Timer与线程的关系,在Timer源代码中可现如下代码:[/b]
1. 以下为Timer的默认构造方法,起调用了自身的一个有参构造函数:
[img]http://files.jb51.net/file_images/article/201703/201703301035516.jpg[/img]
2.有参构造函数代码如下:
[img]http://files.jb51.net/file_images/article/201703/201703301035517.jpg[/img]
3. 有参构造函数设置了当前线程的名字并启动该线程,线程代码如下:
[img]http://files.jb51.net/file_images/article/201703/201703301035518.jpg[/img]
4. TimerThread类的源代码如下:
[img]http://files.jb51.net/file_images/article/201703/201703301035519.jpg[/img]
由以上代码可以看出Timer其实就是一个Thread类的子类。
[b]TimerTask与线程的关系:[/b]
1. 以下为TimerTask的构造函数的源码:
[img]http://files.jb51.net/file_images/article/201703/2017033010355110.jpg[/img]
2. 以下为TimerTask类的定义:
[img]http://files.jb51.net/file_images/article/201703/2017033010355111.jpg[/img]
又以上代码可以看出,TimerTask是一个实现了Runnable接口的线程,此类中有一个抽象的run方法,如下:
[img]http://files.jb51.net/file_images/article/201703/2017033010355112.jpg[/img]
所以我们必须在TimerTask的子类中实现这个run方法。
[b]总结:[/b]
以上Timer和TimerTask的关系类似如下线程关系:
[img]http://files.jb51.net/file_images/article/201703/2017033010355113.jpg[/img]
以上这篇浅谈Timer和TimerTask与线程的关系就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。