" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 開啟多線程常見的4種方法

 更新時間:2022年06月06日 10:59:12   作者:全棧小定  
本文主要介紹了Java 開啟多線程常見的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

簡介

常見的4種使用線程的方法:

1實現(xiàn) Runnable 接口;

2實現(xiàn) Callable 接口;

3繼承 Thread 類。

4匿名內(nèi)部類的寫法。

1. 實現(xiàn) Runnable 接口

編寫測試類RunnableDemo 實現(xiàn) Runnable 接口,實現(xiàn)接口中的 run() 方法。

public class RunnableDemo implements Runnable {

    @Override
    public void run() {
            System.out.println(Thread.currentThread().getName() + "執(zhí)行了");
    }
    
   /**
     * 使用 Runnable 實例再創(chuàng)建一個 Thread 實例,然后調(diào)用 Thread 實例的 start() 方法來啟動線程。
     */
    public static void main(String[] args) {
        RunnableDemo runnable = new RunnableDemo();
        Thread thread0 = new Thread(runnable);
        Thread thread1 = new Thread(runnable);
        thread0.start();
        thread1.start();

    }
}

運行main方法

在這里插入圖片描述

2. 實現(xiàn) Callable 接口

Runnable 相比,Callable 可以有返回值,返回值通過 FutureTask 進行封裝。

public class CallableDemo implements Callable<String> {

    @Override
    public String call() {
        System.out.println(Thread.currentThread().getName() + "執(zhí)行了");
        return "執(zhí)行成功!";
    }

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        CallableDemo mc = new CallableDemo();
        FutureTask<String> ft0 = new FutureTask<>(mc);
        FutureTask<String> ft1 = new FutureTask<>(mc);
        Thread thread0 = new Thread(ft0);
        Thread thread1 = new Thread(ft1);
        thread0.start();
        thread1.start();
        System.out.println(ft0.get());
        System.out.println(ft1.get());
    }
}

啟動main方法

在這里插入圖片描述

3. 繼承 Thread 類

同樣也是需要實現(xiàn) run() 方法,因為 Thread 類也實現(xiàn)了 Runable 接口。

public class ThreadDemo extends Thread {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + "執(zhí)行了");
    }

    public static void main(String[] args) {
        ThreadDemo thread0 = new ThreadDemo();
        ThreadDemo thread1 = new ThreadDemo();
        thread0.start();
        thread1.start();
    }
}

啟動main方法

在這里插入圖片描述

4. 匿名內(nèi)部類的寫法

new Runnable()是一個實現(xiàn)接口Runnable的類的對象,后面的run()方法是該類里實現(xiàn)的方法,這就是匿名內(nèi)部類的寫法

public class ThreadTest {

    public static void start() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "執(zhí)行了");
            }
        }).start();
    }

    public static void main(String[] args) {
        start();
        start();
    }
}

到此這篇關(guān)于Java 開啟多線程常見的4種方法的文章就介紹到這了,更多相關(guān)Java 開啟多線程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring DATA JPA 中findAll 進行OrderBy方式

    Spring DATA JPA 中findAll 進行OrderBy方式

    這篇文章主要介紹了Spring DATA JPA 中findAll 進行OrderBy方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • springboot快速集成mybatis-plus的詳細教程

    springboot快速集成mybatis-plus的詳細教程

    這篇文章主要介紹了springboot快速集成mybatis-plus的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java8 HashMap遍歷方式性能探討

    Java8 HashMap遍歷方式性能探討

    JDK8之前,可以使用keySet或者entrySet來遍歷HashMap,JDK8中引入了map.foreach來進行遍歷
    2021-09-09
  • springMVC傳遞list對象的三種使用方式

    springMVC傳遞list對象的三種使用方式

    這篇文章主要介紹了springMVC傳遞list對象的三種使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 對數(shù)據(jù)進行分頁顯示到table中的實現(xiàn)方法

    對數(shù)據(jù)進行分頁顯示到table中的實現(xiàn)方法

    這篇文章主要介紹了對數(shù)據(jù)進行分頁顯示到table中的實現(xiàn)方法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • SpringBoot集成Liquibase的詳細步驟

    SpringBoot集成Liquibase的詳細步驟

    Liquibase 是一個強大的數(shù)據(jù)庫版本控制工具,能夠與 Spring Boot
    無縫集成,以簡化數(shù)據(jù)庫遷移和管理的過程,以下是從開始集成到最終運行的詳細步驟,需要的朋友可以參考下
    2024-12-12
  • Java無需解壓直接讀取ZIP壓縮包里的文件及內(nèi)容

    Java無需解壓直接讀取ZIP壓縮包里的文件及內(nèi)容

    最近開發(fā)的時候遇到要獲取到zip壓縮包里面的文件內(nèi)容,解決方案就是通過ZipInputStream來讀取,下面通過實例代碼介紹Java無需解壓直接讀取ZIP壓縮包里的文件及內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • JAVA遞歸與非遞歸實現(xiàn)斐波那契數(shù)列

    JAVA遞歸與非遞歸實現(xiàn)斐波那契數(shù)列

    這篇文章主要為大家詳細介紹了JAVA遞歸與非遞歸實現(xiàn)斐波那契數(shù)列,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 全網(wǎng)最詳細Hutool工具詳解

    全網(wǎng)最詳細Hutool工具詳解

    Hutool的目標是使用一個工具方法代替一段復雜代碼,從而最大限度的避免“復制粘貼”代碼的問題,徹底改變我們寫代碼的方式。這篇文章主要介紹了全文最詳細Hutool工具詳解,需要的朋友可以參考下
    2021-12-12
  • 詳解Spring DI依賴注入的方式和類型

    詳解Spring DI依賴注入的方式和類型

    這篇文章主要介紹了詳解Spring DI依賴注入的方式和類型,DI是由容器動態(tài)的將某個依賴關(guān)系注入到組件之中。依賴注入的目的并非為軟件系統(tǒng)帶來更多功能,而是為了提升組件重用的頻率,并為系統(tǒng)搭建一個靈活、可擴展的平臺,需要的朋友可以參考下
    2023-05-05

最新評論

罗江县| 保德县| 营山县| 沅江市| 星子县| 吉林市| 平和县| 仙桃市| 会东县| 环江| 于都县| 尼玛县| 塘沽区| 抚松县| 安达市| 凤凰县| 长葛市| 海晏县| 和林格尔县| 乌拉特后旗| 安远县| 霍林郭勒市| 大庆市| 进贤县| 满城县| 塘沽区| 同德县| 咸丰县| 盐山县| 新疆| 沈阳市| 秦安县| 曲松县| 金山区| 长子县| 姚安县| 永安市| 迭部县| 汝南县| 桦川县| 郴州市|