public class ThreadDemo1{
public static void main(String args[]){
TestThread t =new TestThread();
new Thread(t).start();//方式 1 有“Thread-1”和“main Thread”运行
t.start();           //方式 2 有“Thread -0”和“main Thread”运行
while(true){
System.out.println("main thread is running");
}
}
}
 class TestThread extends Thread{
public void run(){
while(true){
System.out.println(Thread.currentThread().getName() + 
" is running");
}
}

请问:
1.为什么出现上述这种?
2.方式 1 是不是仅仅为了实现多态性?

解决方案 »

  1.   

    http://www.ticmy.com/?p=230
      

  2.   

    首先TestThread()让Thread里面的静态变量(统计线程数的)初始化为o;然后构造方法thread(runnable)让其+1;
      

  3.   

    TestThread t =new TestThread();让统计线程数的静态变量初始化为0;new Thread(t)用的是构造方法thread(runadble)让统计线程数+1;
    这就是构造方法实现多态,
      

  4.   

    也不知道你问的是哪一方面的问题,new Thread(t).start();//方式 1 有“Thread-1”和“main Thread”运行这里可以告诉你的话,每一个main函数都会分配一个线程,该线程为实时线程,而new Thread(t)是使用public Thread(Runnable target)构造方法来分配新的 Thread 对象。这种构造方法与 Thread(null, target,gname) 具有相同的作用,其中的 gname 是一个新生成的名称。自动生成的名称的形式为 “Thread-”+n,其中的 n 为整数。
    该构造方法也就是你所说的“多态性”:向父类转型,即向上转型,这种转型就是自动的。
    也不知道有没有你想知道的。。说了这么一些,有问题再问,我们一起解决!
      

  5.   

    <script> 
    alert("saa");
    </script>