本帖最后由 绿影 于 2011-11-12 13:18 编辑
不知大家注意到没:一个Timer就会产生一个Thread。下面代码中由于主线程的一部分代码被注释,主线程会很快结束,但是那个定时器还是会执行。我开始不理解,添加了打印计时器当前线程名称发现,他不是主线程在执行。那么我们是不是可以说创建一个thread不仅仅只有创建Thread子类和实现Runnable接口两种方法,而且还有创建Timer的方法呢?具体代码如下:- import java.util.*;
- public class TraditionalTimer {
- @SuppressWarnings("deprecation")
- public static void main(String[] args) throws Exception {
- new Timer().schedule(
- new TimerTask(){
- public void run() {
- System.out.println("bombing"+Thread.currentThread().getName());//添加打印当前线程名称
- }},
- 1000,
- 2000);
-
- // while(true){
- // System.out.println(new Date().getSeconds());
- // Thread.sleep(2000);
- // System.out.println(Thread.currentThread().getName());
- // }
- }
- }
复制代码 |