在研究以前的项目编码时:
我发现使用2种不同方式的线程
首先是
TimerThread tt=new TimerThread();
tt.start();
第二是
TimerThread tt=new TimerThread();
new Thread(tt).start();
这两个代码在运行时有什么不同吗?
答案 0 :(得分:0)
杰弗里,
是。均田。第一个选项创建了一个新的TimerThread对象并将其分配给tt句柄。然后它从该句柄访问了start()方法。
第二个选项创建了一个新的TimerThread对象并将其分配给tt句柄。然后在第二行中,创建另一个新的Thread对象并将其分配给tt句柄,然后通过该“new”Thread对象访问start()方法,从而孤立第一行中创建的对象。
唯一真正的区别是选项二在第一行中做了一些不必要的工作。我不是100%对这个解释,所以我欢迎任何有更深刻理解的人。
-Fletch
答案 1 :(得分:0)
当TimerThread从Thread扩展时使用第一个选项,当TimerThread是从Runnable实现的接口时使用第二个选项。
希望它有所帮助。