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

簡(jiǎn)單了解Java創(chuàng)建線程兩種方法

 更新時(shí)間:2020年02月12日 08:51:51   作者:戈德里克山谷  
這篇文章主要介紹了簡(jiǎn)單了解Java創(chuàng)建線程兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了簡(jiǎn)單了解Java創(chuàng)建線程兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Java實(shí)現(xiàn)并啟動(dòng)線程有兩種方法

1、寫一個(gè)類繼承自Thread類,重寫run方法。用start方法啟動(dòng)線程
2、寫一個(gè)類實(shí)現(xiàn)Runnable接口,實(shí)現(xiàn)run方法。用new Thread(Runnable target).start()方法來啟動(dòng)

注意:start方法不是立即執(zhí)行多線程,而是使得該線程變?yōu)榫途w態(tài)(Runnable)

1.通過擴(kuò)展Thread類來創(chuà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 MutliThreadDemo {
  public static void main(String[] args) {
    
    //創(chuàng)建Thread子類的實(shí)例,即創(chuàng)建了線程對(duì)象
    MutliTread mt1 = new MutliTread("Thread");
      
    //不立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榫途w態(tài)(Runnable)
    mt1.start();
  }  
}

//通過擴(kuò)展Thread類來創(chuàng)建線程
class MutliTread extends Thread{
  
  public MutliTread(String name) {
    this.setName(name);
    //或super(name)
  }
  public void run() {
    for(int i = 0; i < 10; i++) {
      System.out.println(Thread.currentThread().getName() + ":" + i);
    }  
  }
}

2.通過Runnable接口創(chuàng)建線程

(1)定義runnable接口的實(shí)現(xiàn)類,并實(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 MutliThreadDemo3 {
  
  public static void main(String[] args) {
     
    //創(chuàng)建一個(gè)Runnable接口實(shí)現(xiàn)類
    MutliTread3 m = new MutliTread3();
    
    //實(shí)例化線程對(duì)象
    Thread t1 = new Thread(m, "甲");
    Thread t2 = new Thread(m, "乙");
    Thread t3 = new Thread(m, "丙");
    t1.start();
    t2.start();
    t3.start();
  }  
}

class MutliTread3 implements Runnable{
  
  public void run() {
    for(int i = 0; i < 10; i++) {
      System.out.println(Thread.currentThread().getName() + ":" + i);
    }  
  }
}

當(dāng)然第二種方法也可通過匿名內(nèi)部類或lambda表達(dá)式實(shí)現(xiàn),會(huì)更簡(jiǎn)潔。以下通過Lambda表達(dá)式實(shí)現(xiàn)run方法:

public class MutliThreadDemo3 {
  
  public static void main(String[] args) {
    
    Runnable r = () -> {  
      for(int i = 0; i < 10; i++) {
        System.out.println(Thread.currentThread().getName() + ":" + i);
      }  
    };
    
    //實(shí)例化線程對(duì)象
    Thread t1 = new Thread(r, "甲");
    Thread t2 = new Thread(r, "乙");
    Thread t3 = new Thread(r, "丙");
    t1.start();
    t2.start();
    t3.start();
  }  
}

注:以上三種方式(本質(zhì)上是兩種)創(chuàng)建的三個(gè)線程其實(shí)是互相獨(dú)立的

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot Controller Post接口單元測(cè)試示例

    SpringBoot Controller Post接口單元測(cè)試示例

    今天小編就為大家分享一篇關(guān)于SpringBoot Controller Post接口單元測(cè)試示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java實(shí)現(xiàn)替換PDF中的字體功能

    Java實(shí)現(xiàn)替換PDF中的字體功能

    文檔中可通過應(yīng)用不同的字體來呈現(xiàn)不一樣的視覺效果,通過字體來實(shí)現(xiàn)文檔布局、排版等設(shè)計(jì)需要。本文將詳細(xì)為大家介紹如何利用Java實(shí)現(xiàn)替換PDF文中的字體,需要的可以參考一下
    2022-03-03
  • Java進(jìn)行反編譯生成.java文件方式(javap、jad下載安裝使用)

    Java進(jìn)行反編譯生成.java文件方式(javap、jad下載安裝使用)

    這篇文章主要介紹了Java進(jìn)行反編譯生成.java文件方式(javap、jad下載安裝使用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 如何設(shè)置springboot啟動(dòng)端口

    如何設(shè)置springboot啟動(dòng)端口

    spring boot是個(gè)好東西,可以不用容器直接在main方法中啟動(dòng),而且無需配置文件,方便快速搭建環(huán)境。下面給大家介紹springboot啟動(dòng)端口的設(shè)置方法和spring boot創(chuàng)建應(yīng)用端口沖突8080 問題,感興趣的朋友一起看看吧
    2017-08-08
  • Mybatis-plus null值更新不生效問題解決

    Mybatis-plus null值更新不生效問題解決

    在使用Mybatis-plus進(jìn)行數(shù)據(jù)更新時(shí),默認(rèn)策略是NOT_NULL,即null值不會(huì)被更新到數(shù)據(jù)庫(kù),解決方法包括設(shè)置全局field-strategy、對(duì)特定字段設(shè)置field-strategy或使用UpdateWrapper方式更新,下面就來介紹一下
    2024-10-10
  • elasticsearch分布式及數(shù)據(jù)的功能源碼分析

    elasticsearch分布式及數(shù)據(jù)的功能源碼分析

    這篇文章主要為大家介紹了elasticsearch分布式及數(shù)據(jù)功能源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • java設(shè)計(jì)模式之裝飾模式詳細(xì)介紹

    java設(shè)計(jì)模式之裝飾模式詳細(xì)介紹

    這篇文章主要介紹了java設(shè)計(jì)模式之裝飾模式,有需要的朋友可以參考一下
    2013-12-12
  • Java中的?HTTP?協(xié)議原理詳解

    Java中的?HTTP?協(xié)議原理詳解

    這篇文章主要介紹了Java中的?HTTP?協(xié)議原理詳解,HTTP超文本傳輸協(xié)議,下文簡(jiǎn)稱?HTTP,它的作用是用于實(shí)現(xiàn)服務(wù)器端和客戶端的數(shù)據(jù)傳輸?shù)?/div> 2022-07-07
  • 以Json形式的數(shù)據(jù)格式實(shí)現(xiàn)JMeter參數(shù)化

    以Json形式的數(shù)據(jù)格式實(shí)現(xiàn)JMeter參數(shù)化

    本文以小項(xiàng)目學(xué)院管理系統(tǒng)為例,給大家分享以Json形式的數(shù)據(jù)格式實(shí)現(xiàn)JMeter參數(shù)化的相關(guān)知識(shí),包括添加元件操作步驟及使用用戶參數(shù)組件實(shí)現(xiàn)參數(shù)化的方法,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Spring Boot+Shiro實(shí)現(xiàn)一個(gè)Http請(qǐng)求的Basic認(rèn)證

    Spring Boot+Shiro實(shí)現(xiàn)一個(gè)Http請(qǐng)求的Basic認(rèn)證

    本文向向大家仔細(xì)的介紹了如何使用Shiro實(shí)現(xiàn)一個(gè)Http請(qǐng)求的Basic認(rèn)證,有此需求的朋友可以參考下本文
    2021-06-06

最新評(píng)論