查一下Thread类的定义和构造方法public class Threadextends Object implements Runnable
Thread(Runnable target) 他们最终没什么区别。

解决方案 »

  1.   

    查了下Thread,发现是外部实现的,我也有点好奇,期待有人研究的人回答下。
      

  2.   

    你的程序本身就错着呢,你第二种写法中有相同的变量。第二,如果你写对了。那么也不建议这样写,要说区别。严格的说:有。
    按照你的风格,给你正确的写法。再解释。
    第一种:继承Thread类,直接调用 start()方法。不必要再把它当做参数放在新new出来的Thread()对象中。因为它本身就是一个线程了。第二种:
    实现Runnable接口。然后new一对象,当作参数传递给Thread()的构造方法中。
    强烈建议,能实现Runnable接口的,就不要继承Thread。因为,java只支持单继承,你若再想继承别的类就不行了。如有疑问联系我。
      

  3.   

    你的变量名确实写错了,不过能理解你的意思。两种方法确实没有什么差别,不过我觉得推荐第一种方法,既然你都继承了Thread类了,何必只是当作一个runable接口用呢。如果要这么用的话,不如直接实现runable。如果从对系统的资源消耗上来看,你的第二种方式肯定消耗的稍微多一点点(虽然这个可以忽略不计)。