C++ 併發程式設計 學習地圖 (MOC)

Overview

Topic Map

Section Source Notes Status
併發基礎 第1章 (pp. 13–24) 何謂併發, 為什麼使用併發, C++ 併發支援與首個程式 [ ]
執行緒管理 第2章 (pp. 24–44) 啟動與等待執行緒, 傳遞參數與轉移所有權, 執行緒數量與標識 [ ]
共享資料 第3章 (pp. 44–75) 競爭條件與互斥鎖, 死結與鎖管理, 其他資料保護方式 [ ]
同步操作 第4章 (pp. 75–124) 條件變數與執行緒安全佇列, Future 與非同步任務, 限時等待, 函數式與訊息傳遞風格, 持續性、Latch 與 Barrier [ ]
記憶體模型與原子操作 第5章 (pp. 124–165) 記憶體模型基礎, 原子型別與操作, 同步發生與先行發生, 記憶體順序選項, 釋放序列與柵欄 [ ]
基於鎖的資料結構 第6章 (pp. 165–199) 併發設計指南, 執行緒安全棧與佇列, 細粒度鎖佇列, 查詢表與鏈結串列 [ ]
無鎖資料結構 第7章 (pp. 199–246) 無鎖概念與取捨, 無鎖棧, 記憶體回收策略, 無鎖佇列與記憶體順序, 無鎖設計指導建議 [ ]
併發設計 第8章 (pp. 246–292) 執行緒間劃分工作, 影響性能的因素, 為性能設計資料結構, 異常安全與可擴展性, 平行演算法案例 [ ]
進階執行緒管理 第9章 (pp. 292–322) 執行緒池, 工作竊取與佇列爭用, 中斷執行緒 [ ]
平行演算法 第10章 (pp. 322–335) 執行策略, 使用平行演算法 [ ]
測試與除錯 第11章 (pp. 335–347) 併發 Bug 類型, 定位與測試併發 Bug [ ]
附錄 附錄A–C (pp. 348–402) C++11 語言特性, 併發庫對比, ATM 訊息傳遞範例 [ ]

Practice Notes

Practice Set Questions Link
併發基礎 10 併發基礎練習題
執行緒管理 10 執行緒管理練習題
共享資料 10 共享資料練習題
同步操作 10 同步操作練習題
記憶體模型與原子操作 10 記憶體模型練習題
基於鎖的資料結構 10 鎖式資料結構練習題
無鎖資料結構 10 無鎖資料結構練習題
併發設計 10 併發設計練習題
進階執行緒管理 10 進階執行緒管理練習題
平行演算法 10 平行演算法練習題
測試與除錯 10 測試與除錯練習題
附錄 10 附錄練習題

Study Tools

Tool Description Link
Exam Traps 常見錯誤與陷阱總整理 面試陷阱題
Quick Reference 全書速查表(API、公式、比較表) 速查表

Tag Index

Tag Related Topics Level
#cpp-concurrency 全 vault 頂層標籤(每個筆記必附) top
#concept / #practice / #dashboard 筆記類型 note-type
#concurrency-basics 第1章:併發概念、平行 vs 併發 domain
#thread-management 第2章:std::thread 生命週期、所有權 domain
#data-sharing 第3章:互斥鎖、死結、資料保護 domain
#synchronization 第4章:條件變數、future、限時等待 domain
#memory-model 第5章:原子操作、記憶體順序 domain
#lock-based-ds 第6章:鎖式併發資料結構 domain
#lock-free-ds 第7章:無鎖資料結構、記憶體回收 domain
#concurrent-design 第8章:工作劃分、性能因素 domain
#advanced-thread-management 第9章:執行緒池、工作竊取、中斷 domain
#parallel-algorithms 第10章:執行策略、平行 STL domain
#testing-debugging 第11章:併發 bug、測試技術 domain
#cpp-language 附錄A–C:C++11 特性、庫對比、ATM 範例 domain
#race-condition #mutex #deadlock #lock-granularity #reader-writer-lock #lazy-initialization 共享資料細節 detail
#condition-variable #future #promise #async #packaged-task #time-limits #functional-programming #message-passing #continuation #latch #barrier 同步操作細節 detail
#atomic #memory-ordering #happens-before #acquire-release #relaxed-ordering #fence #release-sequence #compare-exchange 記憶體模型細節 detail
#thread-safe-stack #thread-safe-queue #fine-grained-locking #lookup-table 鎖式資料結構細節 detail
#lock-free #wait-free #hazard-pointer #reference-counting #aba-problem 無鎖細節 detail
#data-partitioning #false-sharing #cache-ping-pong #amdahls-law #exception-safety #scalability 併發設計細節 detail
#thread-pool #work-stealing #thread-interruption 進階執行緒管理細節 detail
#execution-policy 平行演算法細節 detail
#testing #debugging #livelock 測試除錯細節 detail
#parallelism #multiprocess #multithreading 併發基礎細節 detail
#thread-lifecycle #raii #thread-ownership #hardware-concurrency 執行緒管理細節 detail
#move-semantics #rvalue-reference #lambda #variadic-template #constexpr #thread-local C++ 語言細節 detail

Tag rules:層級為 top → domain → detail → note-type;標籤一律英文小寫 kebab-case;僅允許本註冊表內的標籤;detail 標籤必須與其父 domain 標籤同時出現;每個筆記至少含 cpp-concurrency + 一個 note-type + 一個 domain 標籤。

Weak Areas

Non-core Topic Policy

Source Content Handling
附錄D (pp. 402–542) C++ 執行緒庫逐條 API 參考(chrono、condition_variable、atomic、future、mutex、ratio、thread 標頭) Excluded — 純 API 參考資料,無概念性內容;關鍵 API 已整併入 速查表 與各概念筆記
前言、致謝、關於本書/作者/封面 (pp. 1–13) 出版資訊與導讀 Excluded — 非學術內容
附錄C 完整程式碼清單 ATM 範例之完整原始碼 Summarized — 僅整理架構與訊息流於 ATM 訊息傳遞範例,不逐行收錄