欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java多線程中Thread.currentThread()和this的區(qū)別詳解

 更新時間:2023年08月07日 10:02:17   作者:鍵盤林  
這篇文章主要介紹了Java多線程中Thread.currentThread()和this的區(qū)別詳解,Thread.currentThread()方法返回的是對當(dāng)前正在執(zhí)行的線程對象的引用,this代表的是當(dāng)前調(diào)用它所在函數(shù)所屬的對象的引用,需要的朋友可以參考下

Thread.currentThread()和this的區(qū)別

線程中有兩個對象在剛開始的時候會遇到:

Thread.currentThread().getName();
this.getName()

能夠this.getName()的前提是你必須繼承了Thread類, .getName()方法是從Thread類中繼承下來的;

現(xiàn)在看代碼:

public class MyThread  extends Thread{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println(Thread.currentThread().getName());
		System.out.println(this.getName());
	}
}

main方法:

public class MyRun {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread t1=new MyThread();
		t1.run();
		t1.start();
	}
}

運行結(jié)果:

main
Thread-0
Thread-0
Thread-0

首先第一個結(jié)果"main",是運行了下面這個代碼

System.out.println(Thread.currentThread().getName());

Thread.currentThread()獲取的是當(dāng)前執(zhí)行的線程,而因為沒有開始線程只是調(diào)用了類中的run方法,所以還只是main這個線程在執(zhí)行.

第二個結(jié)果"Thread-0",是運行了下面這個代碼:

System.out.println(this.getName());

this.getName()調(diào)用的是當(dāng)前對象的方法,而當(dāng)前對象我并沒有寫該方法,那就是調(diào)用它父類Thread的方法,而且我們在初始化的時候也并沒有命名,那這"Thread-0"又是從何而來呢,進(jìn)入Thread類查看:

首先找到name屬性:

可以看到該name是沒有被初始化的;

那么找到該Thread類的接口Runnable初始化構(gòu)造函數(shù):

在這里我們還是看不出來name是如何賦值的,進(jìn)入"init()"方法繼續(xù)查看:

從這里我們就看到了"name"值被傳入一個"Thread-",但是后面的"0"我找了很久是真的沒找到,但是這并不影響我們的推斷,那就是this指的是本對象,而Thread.current指向的是當(dāng)前線程.

第三個結(jié)果和第三個結(jié)果還不好解釋,修改代碼:

增加一行代碼:

運行結(jié)果:

也就是說,在線程未開啟的時候,兩個對象不是同一個,this對象是本身對象,而Thread.currentThread()是main對象;

當(dāng)線程啟動的時候,Thread.currentThread()對象就是this對象了;

所以說到底應(yīng)該能夠動后面兩個結(jié)果是為什么了.

到此這篇關(guān)于Java多線程中Thread.currentThread()和this的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Thread.currentThread()和this的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java設(shè)計模式之代理模式與@Async異步注解失效的解決

    Java設(shè)計模式之代理模式與@Async異步注解失效的解決

    代理模式是Java常見的設(shè)計模式之一。所謂代理模式是指客戶端并不直接調(diào)用實際的對象,而是通過調(diào)用代理,來間接的調(diào)用實際的對象
    2022-07-07
  • Java泛型繼承原理與用法詳解

    Java泛型繼承原理與用法詳解

    這篇文章主要介紹了Java泛型繼承原理與用法,結(jié)合實例形式分析了java泛型繼承的相關(guān)原理與實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • springboot搭建訪客管理系統(tǒng)的實現(xiàn)示例

    springboot搭建訪客管理系統(tǒng)的實現(xiàn)示例

    這篇文章主要介紹了springboot搭建訪客管理系統(tǒng)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JDK10新特性之本地變量類型var的深入理解

    JDK10新特性之本地變量類型var的深入理解

    這篇文章主要給大家介紹了J關(guān)于DK10新特性之本地變量類型var的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JDK10具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • RecyclerChart的KLine的繪制

    RecyclerChart的KLine的繪制

    這篇文章主要為大家介紹了RecyclerChart的KLine的繪制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù)

    SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù)

    這篇文章主要介紹了SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    我們開發(fā)微信小程序的過程中,我們的服務(wù)端有時需要獲取微信提供的開放數(shù)據(jù)。微信會對這些開放數(shù)據(jù)做簽名和加密處理,本文通過實例代碼給大家介紹Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法,感興趣的朋友一起看看吧
    2021-11-11
  • 解決IDEA service層跳轉(zhuǎn)實現(xiàn)類的快捷圖標(biāo)消失問題

    解決IDEA service層跳轉(zhuǎn)實現(xiàn)類的快捷圖標(biāo)消失問題

    這篇文章主要介紹了解決IDEA service層跳轉(zhuǎn)實現(xiàn)類的快捷圖標(biāo)消失問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 詳解IntelliJ IDEA 2020 的Debug功能

    詳解IntelliJ IDEA 2020 的Debug功能

    這篇文章主要介紹了IntelliJ IDEA 2020 的Debug功能,本文通過實例截圖相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 解決get請求入?yún)NotNull驗證不生效問題

    解決get請求入?yún)NotNull驗證不生效問題

    這篇文章主要介紹了解決get請求入?yún)NotNull驗證不生效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論