<p>文章来源:http://blog.sina.com.cn/s/blog_6560efc9010185ek.html</p>
<p><br> </p>
<p></p>
<p style="margin-top:0px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; border:0px; list-style:none; word-wrap:normal; word-break:normal; line-height:26px; font-size:14px; widows:2; font-family:Arial; orphans:2; color:rgb(51,51,51)"> <span style="word-wrap:normal; word-break:normal">Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。</span></p>
<p style="margin-top:0px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; border:0px; list-style:none; word-wrap:normal; word-break:normal; line-height:26px; font-size:14px; widows:2; font-family:Arial; orphans:2; color:rgb(51,51,51)"> Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。</p>
<p style="margin-top:0px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; border:0px; list-style:none; word-wrap:normal; word-break:normal; line-height:26px; font-size:14px; widows:2; font-family:Arial; orphans:2; color:rgb(51,51,51)"> 一个Timer可以调度任意多个TimerTask,它会将TimerTask存储在一个队列中,顺序调度,如果想两个TimerTask并发执行,则需要创建两个Timer。下面来看一个简单的例子:</p>
<p style="margin-top:0px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; border:0px; list-style:none; word-wrap:normal; word-break:normal; line-height:26px; font-size:14px; widows:2; font-family:Arial; orphans:2; color:rgb(51,51,51)"> <wbr></wbr></p>
<div style="border:1px dashed rgb(153,153,153); widows:2; margin:18px 0px; width:687px; line-height:26px; font-family:Consolas,'Courier new',Courier,mono,serif; orphans:2; color:rgb(51,51,51); overflow:auto; padding-top:1px; background-color:rgb(245,245,245)">
<ol style="margin:0px; padding:5px 0px; border:medium none; position:relative; color:rgb(92,92,92)"><li style="margin:0px; padding:0px 3px 0px 10px!important; border:medium none; list-style:decimal-leading-zero outside; line-height:13px"> <span style="word-wrap:normal; word-break:normal; line-height:18px; border:medium none; padding:0px; margin:0px; color:black"><span style="font-family:Consolas; word-wrap:normal; word-break:normal"><span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>import</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px">java.util.Timer;</span></span></span></li><li style="margin:0px; border:medium none; list-style:decimal-leading-zero outside; line-height:13px; padding:0px 3px 0px 10px!important"> <span style="word-wrap:normal; word-break:normal; line-height:18px; border:medium none; padding:0px; margin:0px; color:black"><span style="font-family:Consolas; word-wrap:normal; word-break:normal"><span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>import</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px">java.util.TimerTask;</span></span></span></li><li style="margin:0px; padding:0px 3px 0px 10px!important; border:medium none; list-style:decimal-leading-zero outside; line-height:13px"> <span style="word-wrap:normal; word-break:normal; line-height:18px; border:medium none; padding:0px; margin:0px; color:black"><span style="font-family:Consolas; word-wrap:normal; word-break:normal"><span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>public</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>class</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px">TimerTest {<!-- --></span></span></span></li><li style="margin:0px; border:medium none; list-style:decimal-leading-zero outside; line-height:13px; padding:0px 3px 0px 10px!important"> <span style="word-wrap:normal; word-break:normal; line-height:18px; border:medium none; padding:0px; margin:0px; color:black"><span style="font-family:Consolas; word-wrap:normal; word-break:normal"><span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>static</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>class</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px">MyTimerTask1</span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px; color:rgb(0,0,255)"><strong>extends</strong></span> <span style="word-wrap:normal; word-break:normal; border:medium none; padding:0px; margin:0px">TimerTask {<!-- --></span></span></span></li><li style="margin:0px; padding:0px 3px 0px 10px!important; border:medium none; list-style:decimal-leading-zero outside; line-height:13px"> <span style="word-wrap:normal; word-break:normal; line-height:18px; border:medium none; padding:0px; margin:0px; color:black"> |
|