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

Java中線程Thread的三種方式和對(duì)比

 更新時(shí)間:2021年04月18日 10:45:02   作者:招招舟子  
這篇文章主要介紹了Java中線程Thread的三種方式和對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

介紹

多線程主要的作用就是充分利用cpu的資源。單線程處理,在文件的加載的過(guò)程中,處理器就會(huì)一直處于空閑,但也被加入到總執(zhí)行時(shí)間之內(nèi),串行執(zhí)行切分總時(shí)間,等于每切分一個(gè)時(shí)間*切分后字符串的個(gè)數(shù),執(zhí)行程序,估計(jì)等幾分鐘能處理完就不錯(cuò)了。而多線程處理,文件加載與差分過(guò)程中

一、Java實(shí)現(xiàn)多線程的三種方式

1.繼承Thread

通過(guò)Thread繼承,并重寫(xiě)run方法來(lái)實(shí)現(xiàn)多線程,案例如下:

public class ThreadPattern extends Thread {
    @Override
    public void run() {
        System.out.println("繼承Thread當(dāng)前執(zhí)行線程"+Thread.currentThread().getName());
    }
}
// 測(cè)試
public void threadTest() throws ExecutionException, InterruptedException {
        ThreadPattern pattern = new ThreadPattern();
        pattern.start();
    }

2.實(shí)現(xiàn)Runnable接口

Runable的實(shí)現(xiàn)類(lèi)作為T(mén)hread的構(gòu)造參數(shù),來(lái)實(shí)現(xiàn)多線程,案例如下:

public class RunnablePattern implements Runnable{
    @Override
    public void run() {
        System.out.println("實(shí)現(xiàn)Runnable方式,當(dāng)前執(zhí)行線程"+Thread.currentThread().getName());
    }
}
// 測(cè)試
public void runnableTest() throws ExecutionException, InterruptedException {
        RunnablePattern runnablePattern = new RunnablePattern();
        Thread thread = new Thread(runnablePattern);
        thread.start();
    }

3.實(shí)現(xiàn)Callable接口

實(shí)現(xiàn)Callable接口重寫(xiě)call()方法,然后包裝成FutureTask,然后再包裝成Thread,其實(shí)本質(zhì)都是實(shí)現(xiàn)Runnable 接口。案例如下:

public class CallablePattern  implements Callable {
    @Override
    public Object call() throws Exception {
        System.out.println("實(shí)現(xiàn)Callable方式,當(dāng)前執(zhí)行線程"+Thread.currentThread().getName());
        return "1";
    }
}
// 測(cè)試
public void callableTest() throws ExecutionException, InterruptedException {
        CallablePattern callablePattern = new CallablePattern();
        FutureTask<String> futureTask = new FutureTask<>(callablePattern);
        new Thread(futureTask).start();
    }

二、總結(jié)對(duì)三種使用方式的對(duì)比

1、Thread:繼承的方式,由于java的單一繼承機(jī)制。就無(wú)法繼承其他類(lèi),使用起來(lái)就不夠靈活。

2、Runnable:實(shí)現(xiàn)接口,比Thread類(lèi)更加的靈活,沒(méi)有單一繼承的限制。

3、Callable:Thread和runnable都重寫(xiě)run方法并且沒(méi)有返回值,Callable是重寫(xiě)call()方法并且有返回值,借助FutureTask類(lèi)來(lái)判斷線程是否執(zhí)行完畢或者取消線程執(zhí)行, 一般情況下不直接把線程體的代碼放在Thread類(lèi)中,一般通過(guò)Thread類(lèi)來(lái)啟動(dòng)線程。

4:Thread類(lèi)實(shí)現(xiàn)Runnable ,Callable封裝成FutureTask,FutureTask實(shí)現(xiàn)RunnableFuture,RunnableFuture實(shí)現(xiàn)Runnable,所以Callable也算是一種Runnable,所以實(shí)現(xiàn)的方式本質(zhì)都是Runnable實(shí)現(xiàn)。

到此這篇關(guān)于Java中線程Thread的三種方式和對(duì)比的文章就介紹到這了,更多相關(guān)Java 線程Thread內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java注解Annotation原理及自定義注解代碼實(shí)例

    Java注解Annotation原理及自定義注解代碼實(shí)例

    這篇文章主要介紹了Java注解Annotation原理及自定義注解代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot時(shí)間格式化的方法小結(jié)

    SpringBoot時(shí)間格式化的方法小結(jié)

    SpringBoot中的時(shí)間格式化通常指的是將Java中的日期時(shí)間類(lèi)型轉(zhuǎn)換為指定格式的字符串,或者將字符串類(lèi)型的時(shí)間解析為Java中的日期時(shí)間類(lèi)型,本文小編將給大家詳細(xì)總結(jié)了SpringBoot時(shí)間格式化的方法,剛興趣的小伙伴跟著小編一起來(lái)看看吧
    2023-10-10
  • Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能

    Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能

    這篇文章主要為大家詳細(xì)介紹了Java+Windows+ffmpeg實(shí)現(xiàn)視頻轉(zhuǎn)換功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法

    Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法,簡(jiǎn)單描述了雙端鏈表的概念、原理并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)雙端鏈表的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • jar命令修改jar包中的application.yml配置文件

    jar命令修改jar包中的application.yml配置文件

    本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Spring Boot整合Lombok的方法詳解

    Spring Boot整合Lombok的方法詳解

    Lombok 是一種 Java 實(shí)用工具,可用來(lái)幫助開(kāi)發(fā)人員消除 Java 的冗長(zhǎng),尤其是對(duì)于簡(jiǎn)單的 Java 對(duì)象(POJO)。這篇文章主要介紹了Spring Boot整合Lombok,需要的朋友可以參考下
    2021-04-04
  • 解決分頁(yè)插件pagehelper在SpringBoot不起作用的問(wèn)題

    解決分頁(yè)插件pagehelper在SpringBoot不起作用的問(wèn)題

    這篇文章主要介紹了解決分頁(yè)插件pagehelper在SpringBoot不起作用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 一文學(xué)會(huì)處理SpringBoot統(tǒng)一返回格式

    一文學(xué)會(huì)處理SpringBoot統(tǒng)一返回格式

    這篇文章主要介紹了一文學(xué)會(huì)處理SpringBoot統(tǒng)一返回格式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Java按照添加順序的集合幾種方法詳解

    Java按照添加順序的集合幾種方法詳解

    這篇文章主要介紹了Java按照添加順序的集合幾種方法的相關(guān)資料,文中介紹了Java中五種常用的數(shù)據(jù)結(jié)構(gòu)(ArrayList、LinkedList、LinkedHashSet、LinkedHashMap、Stream)及其特點(diǎn),適合不同的應(yīng)用場(chǎng)景,需要的朋友可以參考下
    2024-12-12
  • 輕松掌握J(rèn)ava橋接模式

    輕松掌握J(rèn)ava橋接模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava橋接模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論

祁东县| 白城市| 积石山| 湖北省| 萨迦县| 兴义市| 栖霞市| 沾益县| 革吉县| 仙游县| 阳信县| 东兰县| 富蕴县| 界首市| 额尔古纳市| 西丰县| 北碚区| 邛崃市| 梅州市| 沐川县| 桦南县| 西藏| 延安市| 获嘉县| 汝州市| 县级市| 册亨县| 延津县| 五峰| 兴海县| 前郭尔| 汝州市| 临汾市| 黔江区| 东兴市| 平度市| 都兰县| 开原市| 江达县| 舞钢市| 白玉县|