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

手把手寫一個線程池:基礎不好也能看懂(含詳細注釋)

開發 前端
如果我們一步步拆解,它比你想象的簡單得多。本篇文章會帶你從零開始,構建一個可以跑起來的最小線程池實現,所有代碼配有詳細解釋,哪怕你是初學者也能看懂。

很多人學 C++ 多線程,剛開始聽到“線程池”三個字,第一反應就是:太難了!線程+鎖+隊列,全是讓人頭大的東西,看得腦袋嗡嗡響。

但其實,如果我們一步步拆解,它比你想象的簡單得多。本篇文章會帶你從零開始,構建一個可以跑起來的最小線程池實現,所有代碼配有詳細解釋,哪怕你是初學者也能看懂。

一、線程池到底是什么?

我們先不講代碼,只講“本質”:

線程池的核心思想是:

“提前開好一批線程,任務來了就分配過去執行,用完不銷毀,反復利用。”

這樣可以:

  • ? 避免頻繁創建/銷毀線程帶來的系統開銷
  • ? 實現任務并發處理,提高 CPU 利用率
  • ? 控制線程數量,防止線程過多造成資源搶占

二、線程池需要哪些組件?

為了實現一個最小可用的線程池,我們需要準備:

模塊

用途

std::vector<std::thread>

存儲固定數量的線程

std::queue<std::function<void()>>

存儲待執行的任務

std::mutex

 + std::condition_variable

保證線程間安全、等待通知

stop

 標志

控制線程退出時機

submit()

 接口

提供任務提交的方式

三、線程池的構造函數

我們從構造函數開始,重點:創建線程,并讓它們開始循環工作

ThreadPool(size_t threadCount) : stop(false) {
    for (size_t i = 0; i < threadCount; ++i) {
        workers.emplace_back([this] {
            while (true) {
                std::function<void()> task;
                {
                    std::unique_lock<std::mutex> lock(queueMutex);
                    condition.wait(lock, [this] {
                        return stop || !tasks.empty();
                    });
                    if (stop && tasks.empty()) return; // 安全退出
                    task = std::move(tasks.front());
                    tasks.pop();
                }
                task(); // 執行任務
            }
        });
    }
}

? 詳細解釋:

  • emplace_back([this] {...}) 創建一個線程,執行一個死循環
  • condition.wait(...):如果沒有任務,就讓線程睡著,避免空轉。
  • task = std::move(...):從任務隊列取一個任務出來。
  • task():執行這個任務!

四、任務提交接口 submit

線程池是為任務服務的,我們需要一個函數來“扔任務進去”:

void submit(std::function<void()> f) {
    {
        std::unique_lock<std::mutex> lock(queueMutex);
        if (stop) throw std::runtime_error("ThreadPool stopped");
        tasks.emplace(std::move(f));
    }
    condition.notify_one(); // 喚醒一個線程執行任務
}

核心點:

  • 支持任意無返回值任務(你可以傳入 lambda)
  • 提交后立即喚醒一個“睡著”的線程去執行它

五、析構函數:資源回收

程序結束前,我們要優雅地關閉線程池:

~ThreadPool() {
    {
        std::unique_lock<std::mutex> lock(queueMutex);
        stop = true;
    }
    condition.notify_all(); // 喚醒所有線程退出
    for (std::thread& t : workers) {
        if (t.joinable()) t.join();
    }
}

做了什么?

  • 設置 stop = true,告訴線程池“別再等新任務了”
  • 喚醒所有線程,它們會自己判斷該退出
  • join() 等線程執行完再退出,避免野線程殘留

六、實際測試:線程池能不能用?

int main() {
    ThreadPool pool(3); // 創建一個有3個線程的線程池

    for (int i = 0; i < 6; ++i) {
        pool.submit([i] {
            std::cout << "任務 " << i << " 執行中\n";
            std::this_thread::sleep_for(std::chrono::milliseconds(200));
        });
    }

    std::this_thread::sleep_for(std::chrono::seconds(2));
}

你會看到控制臺輸出類似:

任務 0 執行中
任務 1 執行中
任務 2 執行中
任務 3 執行中
任務 4 執行中
任務 5 執行中

說明線程池真的“并發”跑了多個任務!

七、新手常見誤區提醒

  • 忘記加鎖 → 多線程搶資源,數據錯亂
  • 不喚醒線程 → 提交任務后卡死
  • 主線程提前退出 → 子線程被強制終止

總結一句話

線程池的本質,就是用固定線程輪流干活,用隊列管理任務,用鎖和條件變量保證同步

理解這些基本組件后,你就能輕松掌握多線程的核心套路。

附:完整類定義

class ThreadPool {
public:
    ThreadPool(size_t);
    void submit(std::function<void()>);
    ~ThreadPool();

private:
    std::vector<std::thread> workers;
    std::queue<std::function<void()>> tasks;
    std::mutex queueMutex;
    std::condition_variable condition;
    bool stop;
};


責任編輯:武曉燕 來源: 程序廚
相關推薦

2019-11-18 10:38:03

線程池Java框架

2017-02-22 15:04:52

2020-11-16 16:38:30

人工智能AI

2018-12-24 08:46:52

Kubernetes對象模型

2020-02-15 17:16:05

Kubernetes容器

2022-03-09 09:43:01

工具類線程項目

2019-10-10 11:10:04

SpringBoot異步編程

2025-02-17 10:09:54

2025-02-17 13:00:00

ChatGPT大模型AI

2020-12-23 09:48:37

數據工具技術

2013-09-22 10:34:08

碼農機器學習算法

2024-11-01 05:10:00

2019-03-26 11:15:34

AI機器學習人工智能

2010-08-17 14:29:15

2021-06-22 10:43:03

Webpack loader plugin

2022-11-07 18:36:03

組件RPC框架

2018-05-16 10:07:02

監控報警系統

2019-08-26 09:25:23

RedisJavaLinux

2022-06-28 15:29:56

Python編程語言計時器

2018-03-06 10:38:23

云計算大數據人工智能
點贊
收藏

51CTO技術棧公眾號

欧美日韩国产不卡在线看| 性欧美激情精品| 男女污污视频网站| а√天堂8资源中文在线| 不卡电影免费在线播放一区| 日韩美女主播视频| 日本中文在线视频| 丝袜连裤袜欧美激情日韩| 欧美这里有精品| a级黄色片免费| 日韩一区av| 国产麻豆91精品| 日本精品视频在线观看| 紧身裙女教师波多野结衣| 色天天色综合| 日韩午夜在线影院| 无码人妻丰满熟妇区毛片| 成人日批视频| 国产日韩欧美在线一区| 成人动漫视频在线观看完整版| 精品黑人一区二区三区| 国产一区激情| 日韩在线中文字| 精品少妇人妻一区二区黑料社区| 国产精品久久久久久久久久久久久久久| 天天色天天爱天天射综合| 国产高清免费在线| 国产毛片av在线| 成人av资源在线观看| 91免费精品国偷自产在线| 成人免费毛片视频| 亚洲精品三级| 欧美夫妻性生活xx| 亚洲欧洲综合网| 波多野结衣的一区二区三区| 日韩av在线影院| 高清中文字幕mv的电影| crdy在线观看欧美| 欧美丝袜第三区| 欧美一级黄色片视频| 爱情岛论坛亚洲品质自拍视频网站| 最新高清无码专区| 新呦u视频一区二区| 同心难改在线观看| 成人动漫视频在线| 4444kk亚洲人成电影在线| 一级黄色大毛片| 青草国产精品久久久久久| 热久久免费视频精品| 日本中文字幕网| 亚洲成人直播| 国产综合在线视频| 久久国产露脸精品国产| 亚洲天天影视网| 久久伊人精品视频| 免费在线黄色网| 欧美国产精品| 欧美精品videosex性欧美| 免费毛片在线播放免费| 欧美a级一区| 久久久噜噜噜久久中文字免| 久久久久久久福利| 狠狠入ady亚洲精品经典电影| 欧美精品国产精品日韩精品| 日本熟妇乱子伦xxxx| 在线看片欧美| 日本精品久久久| 亚洲大尺度在线观看| 日韩国产在线观看| 国产一区二区在线免费| 国产三级三级在线观看| 国产一区二区三区免费播放 | www.毛片com| 亚洲成人精品| 亚洲欧美日韩在线播放| 亚洲第一页在线视频| 国产写真视频在线观看| 一区二区三区四区高清精品免费观看 | 嫩草在线播放| 国产欧美日韩视频在线观看| 亚洲日本欧美在线| 国产美女av在线| 亚洲二区在线视频| 少妇性饥渴无码a区免费| 精品成人av| 欧美一区二区三区成人| 又黄又色的网站| 中文字幕av一区二区三区人| 久久精品国产一区二区电影| 久热这里只有精品在线| 媚黑女一区二区| 成人亚洲激情网| 无码精品人妻一区二区三区影院| 国产婷婷色一区二区三区四区| 久久免费看毛片| 超碰激情在线| 欧美精品v日韩精品v韩国精品v| 欧美69精品久久久久久不卡| 亚洲欧美校园春色| 美女精品视频一区| 天天干天天干天天操| 精品一区二区三区免费播放| 国产日韩久久| 色综合久久久久综合一本到桃花网| 亚洲综合激情网| 狠狠热免费视频| caoporn成人免费视频在线| 亚洲性线免费观看视频成熟| 国产午夜精品无码| 久久精品国产亚洲aⅴ| 久久久精品动漫| 影音先锋男人资源在线| 色老头久久综合| jjzz黄色片| 久久理论电影| 欧美综合第一页| 亚洲av综合色区无码一二三区| 国产欧美日韩一区二区三区在线观看 | 四虎影视精品成人| 一区二区在线观看av| 成人免费xxxxx在线视频| 精品视频成人| 色婷婷综合成人av| 黄色免费av网站| 成人美女视频在线观看| 99re8这里只有精品| 成人午夜一级| 亚洲美女久久久| 国产 日韩 欧美 成人| 国产自产v一区二区三区c| 日韩精品一线二线三线| 亚洲一区资源| 亚洲精品大尺度| 国产精品第56页| 国产福利精品导航| 干日本少妇视频| 亚洲欧美一级| 色天天综合狠狠色| 姑娘第5集在线观看免费好剧| www亚洲一区| 国产极品尤物在线| 麻豆一区二区| 91精品国产沙发| 人妻偷人精品一区二区三区| 亚洲一区在线观看免费| 日韩久久久久久久久久久| 亚洲蜜桃视频| 99久久国产免费免费| 18+视频在线观看| 日韩欧美一区二区不卡| 欧美成人aaa片一区国产精品| 国产真实乱子伦精品视频| 一级黄色免费在线观看| 91成人小视频| 久久亚洲影音av资源网| 国产黄色片免费| 亚洲午夜在线电影| 国产免费一区二区三区最新6| 黄色日韩在线| 久久久久免费网| 日韩毛片免费观看| 在线日韩中文字幕| 夜夜狠狠擅视频| 亚洲免费观看高清在线观看| 国产91在线免费观看| 国产精品mm| 久久伊人一区二区| 99re久久| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久手机视频| jizz久久久久久| 久热国产精品视频| 精品人妻午夜一区二区三区四区| 亚洲成人午夜电影| 欧美多人猛交狂配| 青椒成人免费视频| 日本国产中文字幕| 无码日韩精品一区二区免费| 国产精品成人一区二区| 老司机午夜在线| 亚洲国产精品久久精品怡红院 | 欧美亚洲一区| 亚洲人成人77777线观看| 国产在线一区不卡| 91黑丝在线观看| 爱久久·www| 欧美成人video| 亚洲av中文无码乱人伦在线视色| 国产精品久久网站| 国产裸体视频网站| 久久一综合视频| 国产一二三四区在线观看| 日本国产精品| 91在线中文字幕| 超碰国产一区| 欧美成人免费在线视频| 日本一区二区三区在线观看视频| 欧美日韩不卡一区二区| 黄色小视频在线免费看| 国产精品看片你懂得| 亚洲天堂2024| 国产一区二区女| 亚洲一二三区av| 亚洲国产高清一区| 一区二区三区av在线| 精品资源在线| 成人性教育视频在线观看| 成年美女黄网站色大片不卡| 欧美日韩高清区| 福利在线观看| 亚洲国产精品成人一区二区| 国产日韩精品suv| 欧美性xxxxxxxx| 亚洲男人的天堂在线视频| 亚洲人xxxx| 日韩影视一区二区三区| 菠萝蜜视频在线观看一区| 久久久精品视频国产| 奇米四色…亚洲| 久久婷婷五月综合色国产香蕉| 自拍视频亚洲| 亚洲一区二区免费视频软件合集| 亚洲国产国产| 国产精品中出一区二区三区| 警花av一区二区三区| 国产精品美女免费视频| 超碰国产一区| 欧美一区深夜视频| av电影免费在线看| 欧美www在线| 国内精品久久久久国产| 深夜福利一区二区| 国产精品二线| 亚洲午夜未满十八勿入免费观看全集| 天堂av资源网| 亚洲精品国产精品久久清纯直播| 丁香花免费高清完整在线播放| 欧美一级专区免费大片| 91九色蝌蚪91por成人| 欧美日韩免费不卡视频一区二区三区 | 国产亚洲自拍偷拍| 国产精品国产| 激情小说综合网| 免费福利视频一区| 精品久久一区二区三区蜜桃| 国内精品麻豆美女在线播放视频| 国产精品v欧美精品v日韩精品| 在这里有精品| 国产一区免费观看| 秋霞影院一区二区三区| 久久久久久欧美精品色一二三四| 亚洲欧洲色图| 视频一区二区三区在线观看| 秋霞欧美视频| 欧美亚洲视频一区| 欧美成人首页| 97超碰在线人人| 亚洲欧美成人综合| 动漫av免费观看| 蜜臀av性久久久久av蜜臀妖精| 色片在线免费观看| 国产精品影视在线观看| 人妻换人妻仑乱| 97国产精品videossex| 野花社区视频在线观看| 中文字幕欧美日本乱码一线二线| 91ts人妖另类精品系列| 亚洲日本一区二区| 欧美做爰啪啪xxxⅹ性| 亚洲午夜久久久久久久久久久 | 欧美日韩一区二区欧美激情| 91国产免费视频| 日韩欧美www| 天天干视频在线观看| 亚洲天堂成人在线视频| 黄色精品免费看| 久久久久久国产精品久久| 亚洲优女在线| 国产精品亚洲片夜色在线| 欧美国产中文高清| 精品亚洲欧美日韩| 日韩欧美午夜| 天堂8在线天堂资源bt| 性欧美videos另类喷潮| 日本黄色的视频| 不卡的av在线播放| 国产免费嫩草影院| 亚洲午夜精品久久久久久久久| 东京热一区二区三区四区| 欧美日本韩国一区二区三区视频| 精品国产区一区二| 亚洲欧美国产另类| 91麻豆免费在线视频| 日韩免费中文字幕| 久久三级中文| 日韩不卡av| 欧美日韩国产亚洲一区| 国产日韩成人内射视频| 国产成人精品在线看| 亚洲精品国产精品国自产网站| 亚洲免费观看高清完整| 黄色在线视频网址| 日韩一区二区高清| 国家队第一季免费高清在线观看| 欧美精品情趣视频| 成人视屏在线观看| 俄罗斯精品一区二区| 国产精品久久观看| av黄色在线网站| 国产福利不卡视频| 日韩一卡二卡在线观看| 狠狠躁天天躁日日躁欧美| 精品久久在线观看| 在线观看欧美www| 欧美电影免费观看| 国内精品一区二区| 欧美1区2区| 久久久久久久久久毛片| 国产日韩v精品一区二区| 91久久国产视频| 精品欧美一区二区在线观看| 黄网站在线免费| 国产噜噜噜噜久久久久久久久| 欧美日韩爱爱| 国产免费黄色av| 不卡视频在线观看| 欧美精品久久久久性色| 欧美日本一区二区三区| 福利视频在线导航| 人九九综合九九宗合| 欧美freesex8一10精品| 国产高清www| 粉嫩av一区二区三区粉嫩 | 一区二区三区中文| 天天干天天操天天玩| 欧美国产精品一区二区三区| 中文字幕精品无码一区二区| 精品中文视频在线| 亚洲一级少妇| 欧美高清性xxxxhd| 亚洲一区不卡| 波多野结衣 在线| 色综合天天天天做夜夜夜夜做| 熟妇人妻中文av无码| 久久久天堂国产精品女人| 嗯用力啊快一点好舒服小柔久久| 成人一级生活片| 成人免费观看av| 久青草免费视频| 日韩精品免费观看| 在线观看爽视频| 日本精品一区二区三区不卡无字幕| 欧美综合国产| 神马久久久久久久久久久| 欧美性大战久久久久久久蜜臀| 亚洲s色大片| 91日韩在线视频| 国产精品xvideos88| 又黄又爽的网站| 色综合久久综合网97色综合| 国产午夜视频在线观看| 国产精品十八以下禁看| 97精品国产福利一区二区三区| 91 视频免费观看| 亚洲制服欧美中文字幕中文字幕| 人妻与黑人一区二区三区| 欧美一级免费看| 成人在线免费观看视频| 日韩精品你懂的| 亚洲欧美福利一区二区| 欧美一级片免费| 国产成人aa精品一区在线播放| 成人久久电影| 激情久久综合网| 欧美日韩精品中文字幕| 二区三区在线| 91日韩久久| 国产精品日韩久久久| 成人午夜免费影院| 精品av综合导航| 成人影院在线免费观看| 777久久精品一区二区三区无码| 成人97人人超碰人人99| 亚洲精品毛片一区二区三区| 久久天天躁狠狠躁夜夜躁| 久久免费视频66| 国内外成人免费在线视频| 亚洲午夜久久久| 成黄免费在线| 国产亚洲二区| 久久99久久99精品免视看婷婷| 日本熟妇毛茸茸丰满| 一区二区三欧美| 超碰一区二区三区| 中文字幕永久有效| 精品露脸国产偷人在视频| 日本在线观看免费| 九色视频成人porny| 国产精品一区二区久激情瑜伽| 午夜影院免费在线观看|