Java多线程Thread.currentThread()的疑问
高洛峰
高洛峰 2017-04-18 10:01:15
0
4
827
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
PHPzhong

Thread.currentThread()不是返回当前程序运行的线程,而是返回Thread.currentThread()这句代码执行时所在的线程。

所以看到,新的分线程构造时代码在主线程中执行,而run方法内的代码是分线程中执行的。

看输出很容易理解

Ty80

1、new一个Thread对象的时候默认的名字就是Thread-n格式的,你可以看看Thread源码。
2、你这就是一个线程对象,this在你这样使用的情况下,是当前的线程了。
3、Thread.currentThread()永远都是返回当前运行的线程。

巴扎黑

构造方法运行结果可以理解,但是为什么run方法的运行结果不是setName里的testThread而是thread呢?

洪涛

1.getName()方法是从Thread类继承来的,看看Thread类的getName()方法就知道了:

    /**
     * Returns this thread's name.
     *
     * @return  this thread's name.
     * @see     #setName(String)
     */
    public final String getName() {
        return String.valueOf(name);
    }

2.是
3.是
构造器中,Thread.currentThread()是main线程,run方法中的Thread.currentThread()是当前线程

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板