84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Thread.currentThread()不是傳回目前程式執行的線程,而是傳回Thread.currentThread()這句程式碼執行時所在的執行緒。
所以看到,新的分線程構造時程式碼在主執行緒中執行,而run方法內的程式碼是分線程中執行的。
看輸出很容易理解
1、new一个Thread对象的时候默认的名字就是Thread-n格式的,你可以看看Thread源码。2、你这就是一个线程对象,this在你这样使用的情况下,是当前的线程了。3、Thread.currentThread()永遠都是傳回目前運行的執行緒。
new
Thread
Thread-n
this
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()是當前線程
Thread.currentThread()不是傳回目前程式執行的線程,而是傳回Thread.currentThread()這句程式碼執行時所在的執行緒。
所以看到,新的分線程構造時程式碼在主執行緒中執行,而run方法內的程式碼是分線程中執行的。
看輸出很容易理解
1、
new
一个Thread
对象的时候默认的名字就是Thread-n
格式的,你可以看看Thread
源码。2、你这就是一个线程对象,
this
在你这样使用的情况下,是当前的线程了。3、
Thread.currentThread()
永遠都是傳回目前運行的執行緒。構造方法運行結果可以理解,但是為什麼run方法的運行結果不是setName裡的testThread而是thread呢?
1.getName()方法是從Thread類別繼承來的,看看Thread類別的getName()方法就知道了:
2.是
3.是
構造器中,Thread.currentThread()是main線程,run方法中的Thread.currentThread()是當前線程