为了账号安全,请及时绑定邮箱和手机立即绑定

请教关于thread构造方法的一个小问题

请教关于thread构造方法的一个小问题

翻阅古今 2018-12-07 09:22:23
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方法会执行。我也没测试过,如果楼主有正确答案不妨告知下。

查看完整回答
反对 回复 2018-12-16
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

构造函数吧Thread 的参数穿进去,public A(String tname,Thread t)

查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 596 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号