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

问个简单的问题,在给现成设定了名字时,为什么执行run方法中打印线程的名字都是系统指定的名字,而不是我设定的名字?

正在回答

3 回答

正常来说Thread对象的setName方法就应该生效。

0 回复 有任何疑惑可以回复我~

这个需要分析代码了。把你的代码提出来吧。

0 回复 有任何疑惑可以回复我~
#1

hegang 提问者

code是下面的样子~
2014-10-31 回复 有任何疑惑可以回复我~

public class TestThread {

public static void main(String[] args) {

ExecutorService service = Executors.newFixedThreadPool(2);

RunnableTest rt = new RunnableTest();

Thread t1 = new Thread(rt, "t1");

Thread t2 = new Thread(new RunnableTest(), "t2");

service.execute(t1);

service.execute(t2);

}

}

class RunnableTest implements Runnable {

public void run() {

for (int i = 0; i <= 20; i++) {

// 得到当前线程的名字

String str = Thread.currentThread().getName();

System.out.println(str + ":" + i);

}

}

}


0 回复 有任何疑惑可以回复我~
#1

seno_0001

你这个是用线程池代理了。如果你用t1.start();这样就会打印出你设置的名字了。
2014-11-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信