package thread;public class Thread1 extends Thread
{
public Thread1()
{
super("Thread1");
this.run();
}
public void run()
{
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getClass()+":"+i);
}
}
}
------------------------------------------------------------------package thread;public class Thread2 implements Runnable
{
Thread t1;
public Thread2()
{
t1=new Thread(this,"Thread2");
t1.start();
}
public void run()
{
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getClass()+":"+i);
}
}}
-------------------------------------------------------------
package thread;public class Test
{
public static void main(String args[])
{
Thread1 run1=new Thread1();
Thread2 run2=new Thread2();
//Thread2 run3=new Thread2();
}
}问题是,为什么如果实例化run1,run2,就会run1的线程走完了,run2才开始走,如果注释掉run1,变成只实例化run2和run3,就会run2跟run3的线程同时跑呢?
{
public Thread1()
{
super("Thread1");
this.run();
}
public void run()
{
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getClass()+":"+i);
}
}
}
------------------------------------------------------------------package thread;public class Thread2 implements Runnable
{
Thread t1;
public Thread2()
{
t1=new Thread(this,"Thread2");
t1.start();
}
public void run()
{
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getClass()+":"+i);
}
}}
-------------------------------------------------------------
package thread;public class Test
{
public static void main(String args[])
{
Thread1 run1=new Thread1();
Thread2 run2=new Thread2();
//Thread2 run3=new Thread2();
}
}问题是,为什么如果实例化run1,run2,就会run1的线程走完了,run2才开始走,如果注释掉run1,变成只实例化run2和run3,就会run2跟run3的线程同时跑呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货