亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

自定義線程類:

/**
 * 自定義線程類
 */
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)建自定義類對(duì)象(線程對(duì)象)
 *  4. 調(diào)用start方法開啟新的線程
 */
public class Demo01 {
    public static void main(String[] args) {
        System.out.println("main線程開啟");
        // 創(chuàng)建線程對(duì)象
        MyThread myThread = new MyThread("線程A");
        // 開啟新的線程myThread
        myThread.start();

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

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

通過實(shí)現(xiàn)Runnable類來創(chuàng)建并啟動(dò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對(duì)象,該Thread對(duì)象才是真正的線程對(duì)象
  3. 調(diào)用線程對(duì)象的start()方法來啟動(dòng)線程

代碼如下:

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)建自定義對(duì)象
 *  4. 創(chuàng)建Threed對(duì)象的時(shí)候,作為構(gòu)造方法的參數(shù)進(jìn)行傳遞
 *  5. 啟動(dòng)線程start方法
 */
public class Demo02 {
    public static void main(String[] args) {
        // 創(chuàng)建線程任務(wù)對(duì)象
        MyRunnable myRunnable = new MyRunnable();

        // 創(chuàng)建線程對(duì)象
        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ù)報(bào)錯(cuò)org.elasticsearch.action.ActionReque問題

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

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

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

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

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

    本篇文章是對(duì)java中的靜態(tài)代理與動(dòng)態(tài)代理進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    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ì)死循環(huán)

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

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

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

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

    Java date format時(shí)間格式化操作示例

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

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

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

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

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

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

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

最新評(píng)論