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

淺談一下Java的線程并發(fā)

 更新時間:2022年02月08日 14:45:01   作者:ldcaws  
大家好,本篇文章主要講的是淺談一下Java的線程并發(fā),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

談到并發(fā),必會涉及操作系統(tǒng)中的線程概念,線程是CPU分配的最小單位,windows系統(tǒng)是搶占式的,linux是輪詢式的,都需要獲取CPU資源。
并行:同一時刻,兩個線程都在執(zhí)行。
并發(fā):同一時刻,只有一個線程執(zhí)行,但是一個時間段內(nèi),兩個線程都執(zhí)行了。
java中創(chuàng)建線程的三種方式,分別為集成Thread類、實現(xiàn)Runnable接口,實現(xiàn)Callable接口。

在這里插入圖片描述

示例

public class ThreadTest {

    public static class MyThread extends Thread {

        @Override
        public void run() {
            System.out.println("This is a thread");
        }
    }

    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();
    }
}
public class RunnableTest implements Runnable {

    @Override
    public void run() {
        System.out.println("Runnable!");
    }

    public static void main(String[] args) {
        RunnableTest runnableTest = new RunnableTest();
        new Thread(runnableTest).start();
    }
}
public class CallableTest implements Callable<String> {

    @Override
    public String call() throws Exception {
        return "Callable!";
    }

    public static void main(String[] args) {
        FutureTask<String> futureTask = new FutureTask<>(new CallableTest());
        new Thread(futureTask).start();
        try {
            String result = futureTask.get();
            System.out.println(result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }
}

CountDownLatch理解成倒計數(shù)器
場景:玩的王者榮耀,創(chuàng)建大喬、蘭陵王、安其拉、哪吒和鎧等五個玩家,主線程必須在他們都完成確認后,才可以繼續(xù)運行。

public static void main(String[] args) throws InterruptedException {
        CountDownLatch countDownLatch = new CountDownLatch(5);

        Thread DaQiao = new Thread(countDownLatch::countDown);
        Thread LanLingWang = new Thread(countDownLatch::countDown);
        Thread AnQiLa = new Thread(countDownLatch::countDown);
        Thread NeZha = new Thread(countDownLatch::countDown);
        Thread Kai = new Thread(() -> {
            try {
                // 稍等,上個衛(wèi)生間,馬上到...
                Thread.sleep(1500);
                countDownLatch.countDown();
            } catch (InterruptedException ignored) {}
        });

        DaQiao.start();
        LanLingWang.start();
        AnQiLa.start();
        NeZha.start();
        Kai.start();
        countDownLatch.await();
        System.out.println("所有玩家已經(jīng)就位!");
    }

CyclicBarrier可以理解成同步屏障
場景:讓一 組線程到達一個屏障(也可以叫同步點)時被阻塞,直到最后一個線程到達屏障時,屏障才會開門,所有被屏障攔截的線程才會繼續(xù)運行。

到此這篇關(guān)于淺談一下Java的線程并發(fā)的文章就介紹到這了,更多相關(guān)Java線程并發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java代碼獲取UUID的實現(xiàn)示例

    java代碼獲取UUID的實現(xiàn)示例

    本文主要介紹了java代碼獲取UUID的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 基于synchronized修飾靜態(tài)和非靜態(tài)方法

    基于synchronized修飾靜態(tài)和非靜態(tài)方法

    這篇文章主要介紹了基于synchronized修飾靜態(tài)和非靜態(tài)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • java模擬客戶端向服務(wù)器上傳文件

    java模擬客戶端向服務(wù)器上傳文件

    這篇文章主要為大家詳細介紹了java模擬客戶端向服務(wù)器上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Java十分鐘精通類?封裝?繼承

    Java十分鐘精通類?封裝?繼承

    基礎(chǔ)不牢地動山搖,類、封裝、繼承是我們在學(xué)習(xí)基礎(chǔ)時必然要碰到的知識點,讓我們一起來學(xué)習(xí)或回顧一下,感興趣的伙伴來看看吧
    2022-03-03
  • java實現(xiàn)圖片轉(zhuǎn)base64字符串 java實現(xiàn)base64字符串轉(zhuǎn)圖片

    java實現(xiàn)圖片轉(zhuǎn)base64字符串 java實現(xiàn)base64字符串轉(zhuǎn)圖片

    這篇文章主要為大家詳細介紹了java實現(xiàn)圖片轉(zhuǎn)base64字符串,java實現(xiàn)base64字符串轉(zhuǎn)圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • JAVA實現(xiàn)掃描線算法(超詳細)

    JAVA實現(xiàn)掃描線算法(超詳細)

    掃描線算法就是從Ymin開始掃描,然后構(gòu)建出NET,之后根據(jù)NET建立AET。接下來本文通過代碼給大家介紹JAVA實現(xiàn)掃描線算法,感興趣的朋友一起看看吧
    2019-10-10
  • 使用Spring Validation實現(xiàn)數(shù)據(jù)校驗的代碼詳解

    使用Spring Validation實現(xiàn)數(shù)據(jù)校驗的代碼詳解

    在現(xiàn)代Web應(yīng)用開發(fā)中,數(shù)據(jù)校驗是不可忽視的重要環(huán)節(jié),Spring提供了強大的數(shù)據(jù)校驗框架——Spring Validation,可以有效提升數(shù)據(jù)輸入的安全性與應(yīng)用的穩(wěn)定性,本文將介紹如何使用Spring Validation進行數(shù)據(jù)校驗,幫助您深入理解和靈活應(yīng)用這一技術(shù)
    2024-11-11
  • 深入理解Java并發(fā)編程之ThreadLocal

    深入理解Java并發(fā)編程之ThreadLocal

    本文主要介紹了Java并發(fā)編程之ThreadLocal,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • springboot項目配置swagger2示例詳解

    springboot項目配置swagger2示例詳解

    Swagger是一款RESTful接口的文檔在線自動生成、功能測試功能框架。本文重點給大家介紹springboot項目配置swagger2示例代碼詳解,需要的朋友參考下吧
    2021-09-09
  • 全局請求添加TraceId輕松看日志

    全局請求添加TraceId輕松看日志

    這篇文章主要為大家介紹了全局請求添加TraceId,更加方便輕松的看日志,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論

沁阳市| 济南市| 平遥县| 镇坪县| 内丘县| 桑植县| 昌宁县| 聂拉木县| 建平县| 永泰县| 宁津县| 贵溪市| 高要市| 宁远县| 景东| 苏尼特左旗| 开化县| 望江县| 广丰县| 肇源县| 景泰县| 定西市| 临夏市| 西林县| 合肥市| 巍山| 周口市| 长葛市| 苗栗县| 新化县| 西乌珠穆沁旗| 临海市| 贡山| 钟祥市| 黑河市| 谢通门县| 博兴县| 延边| 柘荣县| 施秉县| 玛沁县|