public class XC{
public static void main(String args[]){
Thread t=Thread.currentThread();
System.out.println("主线程"+t);//这一句为什么没输出t.setName("My Thread");
System.out.println("改变名称后:"+t);
try{
for(int i=0;i<5;i++){
System.out.println(i);
t.sleep(200);
}
}
catch(Exception e){
System.out.println("发生异常");
}
}
}
运行结果如下:
改变名称后:Thread[My Thread,5,main]
0
1
2
3
4
输出结果不理解

解决方案 »

  1.   

    这不是多线程,只有一个线程。要实现多线程得实现Thread或call或runable。
      

  2.   

    我的结果
    主线程Thread[main,5,main]
    改变名称后:Thread[main,5,main]
    0
    1
    2
    3
    4输出结果:
    Thread[main,5,main]是你的Thread对象t 引用了toString()方法后输出的字符串(可以System.out.println下)。
    查API Thread toString() 
              返回该线程的字符串表示形式,包括线程名称、优先级和线程组。
    后面的是循环输出了5个数( ⊙ o ⊙ )!
      

  3.   

    是不是看错了? 我运行的结果有的啊
    结果:-------
    主线程Thread[main,5,main]
    改变名称后:Thread[main,5,main]
    0
    1
    2
    3
    4
      

  4.   

    主线程Thread[main,5,main]
    改变名称后:Thread[main,5,main]
    0
    1
    2
    3
    4有结果啊
      

  5.   

    一个是可以正常输出,另外一个:t.sleep(200);这个这样写规范吗?sleep()是静态方法,直接用类名调用就好了,你那里没有给出提示吗?Thread.sleep(200);