不同的线程启动()

时间:2014-04-24 01:42:10

标签: java multithreading

在研究以前的项目编码时:

我发现使用2种不同方式的线程

首先是

TimerThread tt=new TimerThread();
tt.start();

第二是

TimerThread tt=new TimerThread();
new Thread(tt).start();

这两个代码在运行时有什么不同吗?

2 个答案:

答案 0 :(得分:0)

杰弗里,

是。均田。第一个选项创建了一个新的TimerThread对象并将其分配给tt句柄。然后它从该句柄访问了start()方法。

第二个选项创建了一个新的TimerThread对象并将其分配给tt句柄。然后在第二行中,创建另一个新的Thread对象并将其分配给tt句柄,然后通过该“new”Thread对象访问start()方法,从而孤立第一行中创建的对象。

唯一真正的区别是选项二在第一行中做了一些不必要的工作。我不是100%对这个解释,所以我欢迎任何有更深刻理解的人。

-Fletch

答案 1 :(得分:0)

当TimerThread从Thread扩展时使用第一个选项,当TimerThread是从Runnable实现的接口时使用第二个选项。

希望它有所帮助。