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

Thread actor=new Thread(new Actor(),"Mr.Thread");编译器不报错,Mr.thread并没有传进去

Thread actor=new Thread(new Actor(),"Mr.Thread");编译器不报错,Mr.thread并没有传进去

慕神1905738 2016-10-25 19:49:39
将getName()换成Thread.currentThread().getName()就对了,不知道为什么呢?而且貌似进程的执行顺序有变化。。。。求指点package com.imooc.concurrent; public class Actor extends Thread { public void run() { System.out.println(getName() + "is an actor"); int count = 0; boolean a=true; while (a){ System.out.println(getName() + "show begins" + (++count)); if (count==100) { a=false; } if(count%10==0){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //System.out.println(getName() + "show begins" + (++count)); System.out.println(getName() + "show is over"); } public static void main(String[] args) { //Thread actor = new Actor(); // //actor.setName("Mr.Thread"); Thread actor=new Thread(new Actor(),"Mr.Thread"); actor.start(); Thread actressThread= new Thread(new Actress(),"Ms.Runnable"); actressThread.start(); } }  class Actress implements Runnable{ public void run() { System.out.println(Thread.currentThread().getName() + "is an actor"); int count = 0; boolean a=true; while (a){ System.out.println(Thread.currentThread().getName() + "show begins" + (++count)); if (count==100) { a=false; } if(count%10==0){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } System.out.println(Thread.currentThread().getName() + "show is over"); } }
查看完整描述

3 回答

已采纳
?
大咪

TA贡献785条经验 获得超332个赞

public static void main(String[] args) {
//Thread actor = new Actor();
//
//actor.setName("Mr.Thread");
Thread actor=new Thread(new Actor(),"Mr.Thread");    //这里你为什么要改啊。。。?
actor.start();
Thread actressThread= new Thread(new Actress(),"Ms.Runnable");
actressThread.start();
}

//img1.sycdn.imooc.com//580f496e0001536020081090.jpg

查看完整回答
反对 回复 2016-10-25
  • 慕神1905738
    慕神1905738
    请问为什么改成Thread actor = new Thread(new Actor(),"Mr.Thread");后 用Thread.currentThread().getName();能得到想要的结果呢?
  • 大咪
    大咪
    因为线程的那个方法是存在的,意思是获取当前运行的线程名称
  • 慕神1905738
    慕神1905738
    那也就是说这么写也是对的咯
点击展开后面1
  • 3 回答
  • 0 关注
  • 1830 浏览

添加回答

举报

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