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

拥有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()是當前線程

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板