下面是关于Java线程的一段代码,很简单,但是不知道怎么理解了,请大家帮助解释一下
public class ThreadDemo extends Thread{
public void run() {
for(int i = 0; i <= 5; i++) {
try {
System.out.println(currentThread().getName() + "---" + i);
sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String [] args) {
ThreadDemo t = new ThreadDemo();
t.start();
t.run();
}
}说明:currentThread().getName()是返回当前线程对象的引用,为什么t.start()是t线程对象的引用,而t.run()是主线程对象的引用。

解决方案 »

  1.   

    请区别线程对象和线程
    t是new出来的一个东西(或者说t是一个指向new出来的这个对象的引用吧),一个线程对象
    start方法会启动一个线程,有自己的栈空间
    run不会启动一个新线程,还是在main线程中执行
      

  2.   

    1L正解调用Thread的start方法,则启动线程,线程自己调用run方法
    而如果直接调用run方法,那么和普通的调用类的方法一样,随便这个方法叫run也好run1也好run2也好,都是由主线程负责
      

  3.   

    调用Thread的start方法,则启动线程,线程自己调用run方法
    而如果直接调用run方法,那么和普通的调用类的方法一样,
    support
      

  4.   

    Think in JAVA 蛮深奥的,我觉得还是学完J2SE再去看那要好理解些个人认为