package test;
public class Test0919
{
public static void main(String args[])
{
A a=new A("t1");
}
}
class A implements Runnable
{
Thread t=null;
String tname=null;
public A(String tname)
{
this.tname=tname;
this.t=new Thread(this, tname);
this.t.start();
}
@Override
public void run()
{
try
{
for(int i=0;i<20;i++)
{
System.out.println(this.t.getName());
this.t.sleep(300);
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
构造一个线程
为什么将A类中构造方法中线程的构造方法改为thread(tname)控制台就不打印线程名称啦
package test;
public class Test0919
{
public static void main(String args[])
{
A a=new A("t1");
}
}
class A implements Runnable
{
Thread t=null;
String tname=null;
public A(String tname)
{
this.tname=tname;
this.t=new Thread(tname);
this.t.start();
}
@Override
public void run()
{
try
{
for(int i=0;i<20;i++)
{
System.out.println(this.t.getName());
this.t.sleep(300);
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
View Code
2 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
我觉得之所以不打印是因为你执行start方法的线程并不是A,因为你在构造里面是新new出来的一个Thread,它start,并不代表A里面的run方法会执行。我也没测试过,如果楼主有正确答案不妨告知下。
添加回答
举报
0/150
提交
取消
