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

Java線程啟動為什么要用start()而不是run()?

 更新時間:2021年12月12日 10:56:54   作者:bkpp976  
這篇文章主要介紹了線程啟動為什么要用start()而不是run()?下面文章圍繞start()與run()的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價值,西藥的小火熬版可以參考一下,希望對你有所幫助

1、直接調(diào)用線程的run()方法

public class TestStart {
    public static void main(String[] args) throws InterruptedException {
       Thread t1 = new Thread(){

           @Override
           public void run() {
               System.out.println("Thread t1 is working..."+System.currentTimeMillis());
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
       };
       t1.run();
       Thread.sleep(2000);
       System.out.println("Thread Main is doing other thing..."+System.currentTimeMillis());
    }
}

可以看到主線程在t1.run()運行之后再過三秒才繼續(xù)運行,也就是說,直接在主方法中調(diào)用線程的run()方法,并不會開啟一個線程去執(zhí)行run()方法體內(nèi)的內(nèi)容,而是同步執(zhí)行。

2、調(diào)用線程的start()方法

public class TestStart {
    public static void main(String[] args) throws InterruptedException {
       Thread t1 = new Thread(){

           @Override
           public void run() {
               System.out.println("Thread t1 is working..."+System.currentTimeMillis());
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
       };
       t1.start();
       Thread.sleep(2000);
       System.out.println("Thread Main is doing other thing..."+System.currentTimeMillis());
    }
}

startVSrun1.JPG 可以看到在,在執(zhí)行完t1.start()這一行之后,主線程立馬繼續(xù)往下執(zhí)行,休眠2s后輸出內(nèi)容。 也就是說,t1線程和主線程是異步執(zhí)行的,主線程在線程t1的start()方法執(zhí)行完成后繼續(xù)執(zhí)行后面的內(nèi)容,無需等待run()方法體的內(nèi)容執(zhí)行完成。

3、總結(jié)

  • 1、開啟一個線程必須通過start()方法,直接調(diào)用run()方法并不會創(chuàng)建線程,而是同步執(zhí)行run()方法中的內(nèi)容。
  • 2、如果通過傳入一個Runnable對象創(chuàng)建線程,線程會執(zhí)行Runnable對象的run()方法;否則執(zhí)行自己本身的run()方法。
  • 3、不管是實現(xiàn)Runnable接口還是繼承Thread對象,都可以重寫run()方法,達到執(zhí)行設(shè)定的任務(wù)的效果。

到此這篇關(guān)于線程啟動為什么要用start()而不是run()?的文章就介紹到這了,更多相關(guān)start()與run()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis中select語句中使用String[]數(shù)組作為參數(shù)的操作方法

    MyBatis中select語句中使用String[]數(shù)組作為參數(shù)的操作方法

    在 MyBatis 中,如何在 mapper.xml 配置文件中 select 語句中使用 String[] 數(shù)組作為參數(shù)呢,并且使用IN關(guān)鍵字來匹配數(shù)據(jù)庫中的記錄,這篇文章主要介紹了MyBatis中select語句中使用String[]數(shù)組作為參數(shù),需要的朋友可以參考下
    2023-12-12
  • Base64與File之間的相互轉(zhuǎn)化方式

    Base64與File之間的相互轉(zhuǎn)化方式

    這篇文章主要介紹了Base64與File之間的相互轉(zhuǎn)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 使用sharding-jdbc實現(xiàn)水平分庫+水平分表的示例代碼

    使用sharding-jdbc實現(xiàn)水平分庫+水平分表的示例代碼

    本文主要介紹了使用sharding-jdbc實現(xiàn)水平分庫+水平分表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java報錯:Error:java:?程序包org.springframework.boot不存在解決辦法

    Java報錯:Error:java:?程序包org.springframework.boot不存在解決辦法

    建完springboot項目時,點擊啟動,有可能會報錯,下面這篇文章主要給大家介紹了關(guān)于Java報錯:Error:java:?程序包org.springframework.boot不存在的解決辦法,需要的朋友可以參考下
    2024-02-02
  • spring mvc4中相關(guān)注解的詳細(xì)講解教程

    spring mvc4中相關(guān)注解的詳細(xì)講解教程

    這篇文章主要給大家介紹了關(guān)于spring mvc4中相關(guān)注解的相關(guān)資料,其中詳細(xì)介紹了關(guān)于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • java el簡介及用法

    java el簡介及用法

    EL簡介語法結(jié)構(gòu) 運算符等資料代碼。
    2009-04-04
  • Kafka 網(wǎng)絡(luò)中斷和網(wǎng)絡(luò)分區(qū)4種場景分析

    Kafka 網(wǎng)絡(luò)中斷和網(wǎng)絡(luò)分區(qū)4種場景分析

    這篇文章主要介紹了Kafka 網(wǎng)絡(luò)中斷和網(wǎng)絡(luò)分區(qū)4種場景分析
    2007-02-02
  • Mybatis使用XML實現(xiàn)動態(tài)sql的示例代碼

    Mybatis使用XML實現(xiàn)動態(tài)sql的示例代碼

    當(dāng)編寫 MyBatis 中復(fù)雜動態(tài) SQL 語句時,使用 XML 格式是一種非常靈活的方式,本文主要為大家詳細(xì)介紹了Mybatis使用XML實現(xiàn)動態(tài)sql的具體方法,需要的可以參考下
    2023-12-12
  • Springboot整合SpringSecurity的完整案例詳解

    Springboot整合SpringSecurity的完整案例詳解

    Spring Security是基于Spring生態(tài)圈的,用于提供安全訪問控制解決方案的框架,Spring Security登錄認(rèn)證主要涉及兩個重要的接口 UserDetailService和UserDetails接口,本文對Springboot整合SpringSecurity過程給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-01-01
  • Java中的垃圾收集器詳解

    Java中的垃圾收集器詳解

    這篇文章主要介紹了Java中的垃圾收集器詳解,垃圾收集機制是?Java?的招牌能力,極大地提高了開發(fā)效率,如今垃圾收集幾乎成為現(xiàn)代語言的標(biāo)配,需要的朋友可以參考下
    2023-07-07

最新評論