精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java 并發神器:LatchUtils 一招搞定復雜異步同步!

開發 前端
在高并發系統中,簡單往往意味著穩定。LatchUtils?并不是為了替代 JDK 的并發框架,而是為了在特定場景下,提供一種更符合直覺的方式來管理異步任務。

在現代 Java 應用開發中,并發幾乎是提升性能的“標配”。無論是并行調用多個微服務接口、批量查詢數據庫,還是執行密集計算,我們都離不開異步與并行。

然而,當主線程需要等待多個異步任務完成后再繼續執行時,開發者往往需要手動編寫大量控制邏輯。例如使用 ExecutorServiceCountDownLatchCompletableFuture 等工具時,總會出現冗余的樣板代碼(如 latch.countDown()、異常處理、await 等)。

這些重復性邏輯不僅分散了業務重點,還讓代碼顯得笨重。

于是,我們引入了一個輕量級的并發封裝工具 —— LatchUtils。 它秉持“多次提交,一次等待”的核心設計理念,讓異步任務的管理變得極其簡潔。

設計思想:多次提交,一次等待

LatchUtils 的核心思想是將任務注冊與任務等待分離:

  • 任務注冊階段:通過 submitTask() 方法注冊多個任務及其對應線程池;
  • 等待階段:在所有任務提交完成后,調用一次 waitFor() 即可觸發執行并同步等待。

簡單來說,你只需要兩步:

  1. 提交所有異步任務
  2. 等待全部執行完畢

而不需要再關心 CountDownLatch 的創建、計數或中斷異常。

項目路徑結構

/src
 └── main
     └── java
         └── com
             └── icoderoad
                 └── utils
                     └── LatchUtils.java

核心代碼實現

以下是經過優化的 LatchUtils 實現。 相比傳統寫法,它自動管理任務生命周期,使用 ThreadLocal 確保任務隔離,讓多線程調用更安全。

package com.icoderoad.utils;


import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;


/**
 * LatchUtils - 輕量級異步任務協調工具
 * 核心設計:多次提交,一次等待。
 */
public class LatchUtils {


    // 使用 ThreadLocal 存儲當前線程提交的任務列表,保證線程隔離
    private static final ThreadLocal<List<TaskInfo>> TASK_POOL = ThreadLocal.withInitial(LinkedList::new);


    /**
     * 提交異步任務
     * @param executor 指定線程池執行任務
     * @param runnable 任務邏輯
     */
    public static void submitTask(Executor executor, Runnable runnable) {
        TASK_POOL.get().add(new TaskInfo(executor, runnable));
    }


    // 獲取并清空任務列表
    private static List<TaskInfo> popTask() {
        List<TaskInfo> taskInfos = TASK_POOL.get();
        TASK_POOL.remove();
        return taskInfos;
    }


    /**
     * 觸發所有任務執行,并同步等待完成
     * @param timeout  最大等待時間
     * @param timeUnit 時間單位
     * @return 是否在超時前全部完成
     */
    public static boolean waitFor(long timeout, TimeUnit timeUnit) {
        List<TaskInfo> taskInfos = popTask();
        if (taskInfos.isEmpty()) return true;


        CountDownLatch latch = new CountDownLatch(taskInfos.size());


        for (TaskInfo taskInfo : taskInfos) {
            taskInfo.executor.execute(() -> {
                try {
                    taskInfo.runnable.run();
                } finally {
                    latch.countDown();
                }
            });
        }


        try {
            return latch.await(timeout, timeUnit);
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            return false;
        }
    }


    // 內部任務封裝類
    private static final class TaskInfo {
        private final Executor executor;
        private final Runnable runnable;


        TaskInfo(Executor executor, Runnable runnable) {
            this.executor = executor;
            this.runnable = runnable;
        }
    }
}

API 使用說明

方法名

說明

參數

返回值

submitTask(Executor, Runnable)

注冊一個異步任務

executor:執行線程池runnable:任務邏輯

waitFor(long, TimeUnit)

啟動所有任務并等待完成

timeout:超時時間timeUnit:時間單位

true - 全部成功false - 超時

?? 調用 waitFor() 后,當前線程的任務列表會被自動清理,可安全重復使用。

實戰演示:聚合并行任務的優雅寫法

我們以一個聚合服務為例: 主流程需要并行調用 用戶服務訂單服務 和 商品服務,在它們全部完成后再繼續。

package com.icoderoad.demo;


import com.icoderoad.utils.LatchUtils;


import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;


public class Main {


    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(3);


        System.out.println("主流程開始,準備分發異步任務...");


        // 注冊異步任務
        LatchUtils.submitTask(executorService, () -> {
            System.out.println("開始獲取用戶信息...");
            sleep(1000);
            System.out.println("獲取用戶信息成功!");
        });


        LatchUtils.submitTask(executorService, () -> {
            System.out.println("開始獲取訂單信息...");
            sleep(1500);
            System.out.println("獲取訂單信息成功!");
        });


        LatchUtils.submitTask(executorService, () -> {
            System.out.println("開始獲取商品信息...");
            sleep(500);
            System.out.println("獲取商品信息成功!");
        });


        System.out.println("所有異步任務已提交,主線程開始等待...");


        boolean allDone = LatchUtils.waitFor(5, TimeUnit.SECONDS);


        if (allDone) {
            System.out.println("所有任務執行完成,主流程繼續...");
        } else {
            System.err.println("有任務執行超時,主流程中斷!");
        }


        executorService.shutdown();
    }


    private static void sleep(long millis) {
        try {
            Thread.sleep(millis);
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        }
    }
}

運行結果:

主流程開始,準備分發異步任務...
所有異步任務已提交,主線程開始等待...
開始獲取商品信息...
開始獲取用戶信息...
開始獲取訂單信息...
獲取商品信息成功!
獲取用戶信息成功!
獲取訂單信息成功!
所有任務執行完成,主流程繼續...

傳統寫法對比

方式一:使用 CountDownLatch(手動控制)

開發者需要顯式創建 CountDownLatch,在每個任務中調用 countDown(),并在主線程中調用 await(),代碼冗長、易出錯。

方式二:使用 CompletableFuture

語義上更現代,但仍需創建多個 Future 并組合等待,異常處理較繁瑣。

特性

LatchUtils

CountDownLatch

CompletableFuture

代碼簡潔度

極高

中等

較高

狀態管理

自動

手動

自動

異常處理

內部封裝

開發者處理

多異常需捕獲

學習曲線

關注點分離

優秀

一般

良好

結語:讓并發回歸優雅

在高并發系統中,簡單往往意味著穩定LatchUtils 并不是為了替代 JDK 的并發框架,而是為了在特定場景下,提供一種更符合直覺的方式來管理異步任務。

通過 “多次提交,一次等待”,它讓開發者只需專注于核心業務邏輯,而不必陷入重復的并發控制細節。

無論是微服務聚合調用、批量任務執行,還是后臺數據加載,LatchUtils 都是你 Java 并發工具箱中值得收藏的一件“小而美”的利器。

技術總結:

在并發世界里,最難的不是線程安全,而是保持清晰。 而 LatchUtils 的使命,就是讓異步編程更簡單、更純粹。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2025-10-15 02:11:00

2022-09-06 11:53:00

開發計算

2010-03-16 08:59:45

Windows 7純凈版安裝

2020-12-31 13:17:57

手機電腦多屏協同

2023-12-18 08:24:09

LinuxPythonWord

2020-10-20 08:01:30

MySQL密碼Windows

2021-03-06 09:54:22

PythonHTTP請求頭

2015-08-03 14:02:37

Windows 10升級

2025-04-18 09:49:48

2022-01-25 13:00:52

前端設計優化

2021-08-21 23:33:16

iOS蘋果系統

2021-12-13 06:56:46

TCP孤兒連接

2025-09-01 07:37:44

2013-07-30 11:24:33

SAP“簡化IT 一招

2018-08-14 05:21:43

路由器網絡運維網絡

2021-01-25 05:41:25

Flash Fliqlo軟件

2021-08-07 07:56:57

Windows 11操作系統微軟

2021-11-22 11:30:37

JavaScript代碼瀏覽器

2021-08-02 05:16:36

IE技巧操作系統
點贊
收藏

51CTO技術棧公眾號

日本在线免费中文字幕| 中文字幕在线播放av| 猫咪成人在线观看| 在线视频综合导航| 在线观看18视频网站| 天堂а在线中文在线无限看推荐| 日一区二区三区| 另类天堂视频在线观看| 玖玖爱在线观看| 久久精品一级| 色婷婷精品大视频在线蜜桃视频| 在线观看成人免费| 日本视频在线观看一区二区三区| 久88久久88久久久| 午夜精品福利在线观看| 日本不卡一二区| 欧美日韩爱爱| 亚洲成人999| 欧美丝袜在线观看| 日韩福利一区| 一区二区欧美精品| 一本一道久久a久久综合精品| 日韩性xxxx| 激情六月婷婷久久| 国产精品偷伦一区二区 | 亚洲自拍第二页| 亚洲无毛电影| 久久这里有精品视频| 久久久精品成人| 牲欧美videos精品| 精品国产乱码久久久久久久久| 奇米影视四色在线| 日本综合视频| 色婷婷av一区二区三区之一色屋| 欧妇女乱妇女乱视频| 午夜伦理在线| 日本一区二区在线不卡| 欧美一区二区三区四区在线观看地址 | 日本在线成人一区二区| 日本国产在线观看| 成人国产免费视频| 99热最新在线| 亚洲AV无码乱码国产精品牛牛| 国产一区美女在线| 91精品视频在线播放| 一区二区三区精彩视频| 秋霞电影一区二区| 国产精品高潮在线| 日本视频www色| 奇米精品一区二区三区四区| 国产精品高清网站| 中文字幕欧美人妻精品一区蜜臀| 天堂av在线一区| 日韩美女毛茸茸| 国产一卡二卡三卡| 秋霞电影网一区二区| 国产免费观看久久黄| 亚洲综合精品国产一区二区三区| 秋霞国产午夜精品免费视频| 国产在线观看精品一区二区三区| 亚洲网站在线免费观看| 久久99精品网久久| av激情久久| 天堂av手机版| 久久久久久久久97黄色工厂| 日韩久久久久久久| 久热国产在线| 亚洲影视在线观看| 国产黄页在线观看| 999国产精品亚洲77777| 欧美精品三级在线观看| 日韩av片网站| 国产在线不卡一区二区三区| 欧美成人bangbros| 国产在线观看无码免费视频| 国产一区二区三区四区五区传媒 | 岛国毛片在线观看| 激情久久婷婷| 国产精品www| 国产又粗又猛又爽又黄91| 国产福利不卡视频| 韩国成人av| 国产小视频在线| 国产精品电影一区二区| 黄色三级中文字幕| 欧美一区国产| 欧美一级精品在线| 白丝女仆被免费网站| 日本黄色精品| 国内外成人免费激情在线视频网站 | 亚州av乱码久久精品蜜桃| 欧美激情免费看| а中文在线天堂| 成人免费av网站| 亚洲精蜜桃久在线| 99色在线观看| 91精品视频网| 夜夜春很很躁夜夜躁| 欧美国产高潮xxxx1819| 国产精品成人一区| www夜片内射视频日韩精品成人| 久久嫩草精品久久久精品一| 国产一二三四五| 朝桐光一区二区| 欧美r级电影在线观看| jizz18女人高潮| 亚洲黄色天堂| 91精品啪在线观看麻豆免费 | 91在线观看视频| 欧美性视频在线播放| 台湾佬中文娱乐久久久| 精品成a人在线观看| 天天操夜夜操av| 老鸭窝毛片一区二区三区| 91视频婷婷| 欧美性天天影视| 91国在线观看| 精品一区二区视频在线观看| 欧美.日韩.国产.一区.二区| 国产精品国产三级国产aⅴ9色| 天堂成人在线视频| 亚洲人成电影网站色mp4| 日日噜噜噜噜久久久精品毛片| 欧美wwwwww| 欧美黑人视频一区| 国产精品午夜福利| 中文字幕免费不卡在线| 三年中国国语在线播放免费| 天天做夜夜做人人爱精品| 欧美激情精品久久久久久黑人| 国产三区在线播放| 国产精品国产自产拍高清av王其| 成人在线观看黄| 日韩精品免费一区二区夜夜嗨| 欧美日韩国产二区| av资源免费看| 亚洲欧美另类图片小说| 国产成人美女视频| 99精品在线免费在线观看| 国产精品露脸av在线| 国产高清视频在线播放| 色播五月激情综合网| 在线 丝袜 欧美 日韩 制服| 亚洲综合激情| 欧美日韩亚洲在线| 中文在线免费视频| 国产一区二区三区中文| 国产亚洲欧美日韩高清| 国产欧美日韩亚州综合| 蜜臀av免费观看| 欧美大黑bbbbbbbbb在线| 国产精品一香蕉国产线看观看| av在线播放av| 欧美精品久久一区二区三区| 久久国产精品国语对白| 国产成人午夜精品5599| 亚洲 欧美 综合 另类 中字| 久久精品国产亚洲blacked| 456亚洲影院| 国产三区四区在线观看| 欧美日韩国产色站一区二区三区| 国产一二三av| 国产精品2024| 欧美 日韩 激情| 久久91精品| 国产一区视频在线播放| 三级福利片在线观看| 亚洲精品久久久久久久久久久久 | 8x8ⅹ拨牐拨牐拨牐在线观看| 亚洲国产精品成人av| 亚洲 欧美 成人| 亚洲欧洲99久久| jjzz黄色片| 久久一二三四| 久久精品国产精品亚洲精品色| 亚洲va欧美va人人爽成人影院| 午夜精品视频在线| 成人午夜影视| 精品剧情v国产在线观看在线| 国产污污视频在线观看 | 国产成人av福利| 伊人成色综合网| 久久精品一区二区不卡| 国产视频精品网| 成人在线高清| 国产最新精品视频| 二人午夜免费观看在线视频| 日韩一区二区三区免费观看| 亚洲天堂一区在线观看| 一区在线播放视频| 欧美做受喷浆在线观看| 精品一区二区三区香蕉蜜桃| 亚洲熟妇国产熟妇肥婆| 国产高清一区| 日本欧洲国产一区二区| 这里视频有精品| 国产精品女主播| 182在线播放| 久久久999国产| 国产精品国产高清国产| 欧美一区二区三区系列电影| 日本一区二区三区精品| 亚洲精品高清视频在线观看| 国产精品密蕾丝袜| 成人国产精品视频| 伊人成人免费视频| 奇米在线7777在线精品| 国产免费黄视频| 精品成人在线| 最新中文字幕久久| 欧洲美女日日| 久久久久一区二区| 97精品久久| 亚洲综合色av| 久久91视频| 日韩av电影手机在线| h片在线观看下载| 另类美女黄大片| 免费观看在线黄色网| 国产午夜精品视频| 外国精品视频在线观看| 精品国产污污免费网站入口 | 妞干网在线观看视频| 66视频精品| 在线播放 亚洲| 日韩欧美高清| 日韩国产高清一区| 伊人久久大香线蕉无限次| 国产精品免费区二区三区观看 | 美女高潮在线观看| 欧美精品999| 黄页在线观看免费| 欧美国产日韩二区| 污网站在线免费看| 九九热99久久久国产盗摄| 黄色网页在线免费观看| 少妇激情综合网| 日本成a人片在线观看| 色噜噜狠狠狠综合曰曰曰| freemovies性欧美| 在线看片第一页欧美| 超碰在线国产| 最近2019年好看中文字幕视频 | 久久不卡国产精品一区二区| 精品乱色一区二区中文字幕| 激情av综合| 久久国产精品一区二区三区| 亚洲国产合集| 欧美日韩一区在线播放| 国产成人调教视频在线观看 | av在线天堂播放| 日韩亚洲欧美成人| а√资源新版在线天堂| 欧美成人在线免费| 日本无删减在线| 97视频在线观看播放| 日韩激情电影免费看| 清纯唯美亚洲激情| 欧美色网在线| 成人午夜小视频| 成人精品动漫一区二区三区| 精品久久久久久综合日本 | 亚洲欧洲一区二区三区在线观看| 国产在线观看黄| 日韩中文字幕欧美| 性欧美ⅴideo另类hd| 午夜精品久久久久久久99黑人| 在线男人天堂| 国产精品日韩在线一区| 久久久久毛片免费观看| 精品国产综合久久| 久久伦理在线| 亚洲理论电影在线观看| 噜噜爱69成人精品| 天堂av8在线| 波多野结衣在线aⅴ中文字幕不卡| 人妻少妇一区二区| 亚洲视频 欧洲视频| 好吊妞视频一区二区三区| 欧美亚洲一区二区在线观看| 国产绿帽一区二区三区| 日韩电影中文字幕在线观看| 成人免费在线电影| 国自产精品手机在线观看视频| 性欧美gay| 成人资源视频网站免费| 成人精品天堂一区二区三区| 中文字幕色呦呦| 石原莉奈在线亚洲二区| 色综合久久久无码中文字幕波多| 91捆绑美女网站| 中国一级片在线观看| 福利微拍一区二区| av网站在线免费看| 亚洲人成网站免费播放| 丝袜在线观看| 国产精品精品久久久| 国产另类在线| 在线观看成人av| 免费在线成人| 波多野结衣三级视频| 国产精品热久久久久夜色精品三区| 免费网站看av| 欧美日韩一区二区三区在线看 | 日韩三级不卡| 亚洲国产欧美日韩| 国产伦理一区| 精品伦一区二区三区| 中文字幕在线免费不卡| 亚洲另类欧美日韩| 欧美变态口味重另类| 麻豆网站视频在线观看| 日韩av电影院| 老汉色老汉首页av亚洲| 一级性生活视频| 精品一区二区三区的国产在线播放 | 老太脱裤让老头玩ⅹxxxx| 狠狠色丁香婷婷综合| 日本一区二区视频在线播放| 欧美视频13p| 亚洲精品中文字幕成人片| 久久精品美女视频网站 | 风间由美一区二区三区| 婷婷成人基地| 中文字幕亚洲影院| 国产精品黄色在线观看| 亚洲av综合一区| 亚洲欧美另类国产| 中国色在线日|韩| 精品在线不卡| 在线日韩视频| 午夜福利三级理论电影| 亚洲综合色噜噜狠狠| www精品国产| 欧美激情第99页| 97精品久久| 无罩大乳的熟妇正在播放| 99久久综合99久久综合网站| 日韩精品在线免费看| 亚洲福利视频网| 天天综合av| 欧美福利精品| 久久一区二区三区四区五区| 人妻精品久久久久中文字幕| 日韩欧美在线播放| 三级av在线| 国产精品高清免费在线观看| 欧美精品尤物在线观看| 日本在线播放一区二区| 亚洲欧美另类久久久精品| 精品国产区一区二| 欧美激情成人在线视频| 日韩啪啪网站| 妓院一钑片免看黄大片| 国产精品嫩草影院com| 国产免费av观看| 欧美激情国产精品| 欧美激情极品| 男人插女人下面免费视频| 国产精品午夜久久| 国产视频手机在线| 久久人91精品久久久久久不卡| 秋霞影视一区二区三区| www.色就是色| 亚洲精品一二三| 亚洲人午夜射精精品日韩| 国产精品福利在线观看网址| 日韩欧美三级| 国产精品偷伦视频免费观看了| 午夜电影一区二区| 国产精品视频二区三区| 成人激情视频在线观看| 亚洲网站啪啪| 懂色av粉嫩av浪潮av| 欧美一级在线免费| 久久青草伊人| 伊人天天久久大香线蕉av色| 国产成人免费视频网站| 国产99免费视频| 欧美床上激情在线观看| 九九久久成人| 精产国品一区二区三区| 一本大道久久a久久综合| 精品176二区| 免费亚洲一区二区| 国产一区二区导航在线播放| 人妻 日韩精品 中文字幕| 久久夜色精品国产欧美乱| 欧美深夜视频| 亚洲欧美天堂在线| 日韩欧美中文字幕在线播放| 免费av在线播放| 久久影院理伦片| 国产麻豆精品theporn| 无码人妻精品一区二区蜜桃色欲| 插插插亚洲综合网| 欧美日韩国产传媒| 在线观看国产三级| 欧美一级欧美一级在线播放| 欧美电影网址|