黑马程序员技术交流社区

标题: 求大神解答 [打印本页]

作者: 武腊福    时间: 2015-5-14 20:43
标题: 求大神解答
class Demo extends Thread
{
        public void run()
        {
                for(int x=0;x<20;x++)
                {
                        System.out.println(Thread.currentThread().getName()+"......"+x);
                }
        }
}
class ThreadDemo7
{
        public static void main(String[] args)
        {
                Demo d1=new Demo();
                Demo d2=new Demo();
                d1.start();
                d2.run();
        }
}
如果改成d1.run();d2.start();
结果为什么会不一样?

作者: 沐沐远去    时间: 2015-5-18 00:43
知识点介绍:main()方法里跑的是主线程。
问题说明:
d1.start();是开启一个新线程去运行run()方法内的内容。Thread.currentThread()获得的是子线程
d2.run();是主线程中d2对像调用run()方法运行内部内容。Thread.currentThread() 获得的是主线程
结论:
线程不是一个所以线程名字不一样
作者: 枕寒流    时间: 2015-5-18 08:24
学习一下,,,,,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2