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

Java中創(chuàng)建線程的兩種方式詳細(xì)說明

 更新時間:2023年11月17日 09:55:34   作者:牧碼ya  
這篇文章主要介紹了Java中創(chuàng)建線程的兩種方式詳細(xì)說明,Java使用java.lang.Thread類代表線程,所有的線程對象都必須是Thread類或其子類的實(shí)例,每個線程的作用是完成一定的任務(wù),實(shí)際上就是執(zhí)行一段程序流即一段順序執(zhí)行的代碼,需要的朋友可以參考下

Java中創(chuàng)建線程的兩種方式

創(chuàng)建線程方式一

通過繼承Thread類來創(chuàng)建并啟動多線程

Java使用java.lang.Thread類代表線程,所有的線程對象都必須是Thread類或其子類的實(shí)例。每個線程的作用是完成一定的任務(wù),實(shí)際上就是執(zhí)行一段程序流即一段順序執(zhí)行的代碼。Java使用線程執(zhí)行體來代表這段程序流。 Java中通過繼承Thread類來創(chuàng)建并啟動多線程的步驟如下:

  1. 定義Thread類的子類,并重寫該類的run()方法,該run()方法的方法體就代表了線程需要完成的任務(wù),因此把run()方法稱為線程執(zhí)行體
  2. 創(chuàng)建Thread子類的實(shí)例,即創(chuàng)建了線程對象
  3. 調(diào)用線程對象的start()方法來啟動該線程

自定義線程類:

/**
 * 自定義線程類
 */
public class MyThread extends Thread {
    public MyThread(String name){
        super(name);
    }

    @Override
    public void run() {
        for(int i = 1; i <= 20; i++){
            System.out.println(getName() + " " + i);
        }
    }
}

測試類:

/**
 * 創(chuàng)建線程方式一:
 *  1. 創(chuàng)建自定義類繼承Thread類
 *  2. 重寫run方法(run方法就是新的線程要執(zhí)行的代碼)
 *  3. 創(chuàng)建自定義類對象(線程對象)
 *  4. 調(diào)用start方法開啟新的線程
 */
public class Demo01 {
    public static void main(String[] args) {
        System.out.println("main線程開啟");
        // 創(chuàng)建線程對象
        MyThread myThread = new MyThread("線程A");
        // 開啟新的線程myThread
        myThread.start();

        // 這個循環(huán)在main線程中執(zhí)行
        for (int i = 1; i <= 20; i++) {
            System.out.println("mian線程 " + i);
        }
    }
}

創(chuàng)建線程方式二

通過實(shí)現(xiàn)Runnable類來創(chuàng)建并啟動多線程

采用java.lang.Runnable 也是非常常見的一種,我們只需要重寫run方法即可 步驟如下:

  1. 定義Runnable接口的實(shí)現(xiàn)類,并重寫該接口的run()方法,該run()方法的方法體同樣是該線程的線程執(zhí)行體
  2. 創(chuàng)建Runnable實(shí)現(xiàn)類的實(shí)例,并以此實(shí)例作為Thread的target來創(chuàng)建Thread對象,該Thread對象才是真正的線程對象
  3. 調(diào)用線程對象的start()方法來啟動線程

代碼如下:

public class MyRunnable implements Runnable {

    @Override
    public void run() {
        for (int i = 1; i <= 20; i++) {
            System.out.println(Thread.currentThread().getName() + " " + i);
        }
    }
}
/**
 * 創(chuàng)建線程方式二:
 *  1. 定義自定義類實(shí)現(xiàn)Runnable接口
 *  2. 重寫run方法
 *  3. 創(chuàng)建自定義對象
 *  4. 創(chuàng)建Threed對象的時候,作為構(gòu)造方法的參數(shù)進(jìn)行傳遞
 *  5. 啟動線程start方法
 */
public class Demo02 {
    public static void main(String[] args) {
        // 創(chuàng)建線程任務(wù)對象
        MyRunnable myRunnable = new MyRunnable();

        // 創(chuàng)建線程對象
        Thread t1 = new Thread(myRunnable, "線程A");
        Thread t2 = new Thread(myRunnable, "線程B");

        // 開啟線程
        t1.start();
        t2.start();
    }
}

到此這篇關(guān)于Java中創(chuàng)建線程的兩種方式詳細(xì)說明的文章就介紹到這了,更多相關(guān)Java中創(chuàng)建線程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java向es中寫入數(shù)據(jù)報錯org.elasticsearch.action.ActionReque問題

    java向es中寫入數(shù)據(jù)報錯org.elasticsearch.action.ActionReque問題

    這篇文章主要介紹了java向es中寫入數(shù)據(jù)報錯org.elasticsearch.action.ActionReque問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解Java Bellman-Ford算法原理及實(shí)現(xiàn)

    詳解Java Bellman-Ford算法原理及實(shí)現(xiàn)

    Bellman-Ford算法與Dijkstra算法類似,都是以松弛操作作為基礎(chǔ),Bellman-Ford算法是對所有邊都進(jìn)行松弛操作,本文將詳解Bellman-Ford算法原理及實(shí)現(xiàn),感興趣的可以了解一下
    2022-07-07
  • 深入解析java中的靜態(tài)代理與動態(tài)代理

    深入解析java中的靜態(tài)代理與動態(tài)代理

    本篇文章是對java中的靜態(tài)代理與動態(tài)代理進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    這篇文章主要介紹了java并發(fā)編程(JUC)Lock鎖的相關(guān)內(nèi)容,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 為什么JDK8中HashMap依然會死循環(huán)

    為什么JDK8中HashMap依然會死循環(huán)

    這篇文章主要介紹了為什么JDK8中HashMap依然會死循環(huán),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中簡單實(shí)用Quartz概述

    Java中簡單實(shí)用Quartz概述

    Quartz是一個開源的Java調(diào)度框架,可以用來實(shí)現(xiàn)在指定的時間或時間間隔觸發(fā)任務(wù)執(zhí)行的功能,這篇文章主要介紹了Java中簡單實(shí)用Quartz,需要的朋友可以參考下
    2023-02-02
  • Java date format時間格式化操作示例

    Java date format時間格式化操作示例

    這篇文章主要介紹了Java date format時間格式化操作,結(jié)合具體實(shí)例形式分析了java針對日期時間進(jìn)行格式化操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • 使用kotlin編寫spring cloud微服務(wù)的過程

    使用kotlin編寫spring cloud微服務(wù)的過程

    這篇文章主要介紹了使用kotlin編寫spring cloud微服務(wù)的相關(guān)知識,本文給大家提到配置文件的操作代碼,給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 詳細(xì)聊一聊java中封裝的那點(diǎn)事

    詳細(xì)聊一聊java中封裝的那點(diǎn)事

    封裝是一個非常廣泛的概念,小到一個屬性的封裝,大到一個框架或者一個項(xiàng)目的封裝,下面這篇文章主要給大家介紹了關(guān)于java中封裝的那點(diǎn)事,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Java實(shí)現(xiàn)中國象棋的示例代碼

    Java實(shí)現(xiàn)中國象棋的示例代碼

    中國象棋是起源于中國的一種棋,屬于二人對抗性游戲的一種,在中國有著悠久的歷史。由于用具簡單,趣味性強(qiáng),成為流行極為廣泛的棋藝活動。本文將利用Java實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下
    2022-02-02

最新評論