首页
›
编程基础与工程化
›
015-多线程
›
《工程构建中的线程安全设计》
VIP20
本课程属于:015-多线程
编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
工程构建中的线程安全设计
📚 共计 30 章节
01
线程安全概述
为什么构建系统需要线程安全?并发构建的痛点与挑战。
基础
并发
02
竞态条件与临界区
定义、示例、在构建脚本中的典型表现。
竞态
临界区
03
原子操作
什么是原子操作?在构建中如何利用原子操作保证文件写入安全。
原子
文件
04
互斥锁(Mutex)
基本原理、在构建工具中的应用(如Bazel的锁机制)。
锁
Mutex
05
读写锁(RWLock)
读多写少场景下的优化,构建缓存中的实践。
读写锁
缓存
06
信号量(Semaphore)
控制并发资源访问数量,限制并行编译任务数。
信号量
并发控制
07
条件变量
线程间协作,等待构建产物生成。
条件变量
协作
08
屏障(Barrier)
同步多个线程到达某个点,用于构建阶段划分。
屏障
同步
09
线程本地存储(TLS)
避免共享数据,每个线程持有自己的构建上下文。
TLS
线程私有
10
不可变对象与函数式构建
为什么不可变性是线程安全的基石。
不可变
函数式
11
构建缓存与线程安全
缓存击穿、缓存雪崩、缓存一致性问题。
缓存
一致性
12
文件系统并发
多个线程同时读写文件,如何避免冲突。
文件
并发
13
日志系统的线程安全
多线程环境下日志不交错、不丢失。
日志
安全
14
构建图(DAG)的线程安全
拓扑排序与并行执行的锁设计。
DAG
拓扑
15
任务队列与线程池
构建任务的分发与执行模型。
线程池
队列
16
死锁
产生条件、在构建系统中的典型场景、预防策略。
死锁
预防
17
活锁与饥饿
比死锁更隐蔽的问题,如何识别与解决。
活锁
饥饿
18
锁的粒度
粗粒度锁 vs 细粒度锁,构建性能的权衡。
粒度
性能
19
无锁编程(Lock-Free)
CAS操作、在构建工具中的应用。
无锁
CAS
20
内存模型与可见性
volatile、内存屏障,构建进程间的数据同步。
内存模型
可见性
21
构建工具的线程安全设计(Bazel)
深入分析Bazel的并行执行引擎。
Bazel
并行
22
构建工具的线程安全设计(CMake)
CMake的并行构建与依赖管理。
CMake
依赖
23
构建工具的线程安全设计(Make)
GNU Make的并行执行与隐患。
Make
并行
24
自定义构建脚本的线程安全(Python)
使用multiprocessing与threading。
Python
多线程
25
自定义构建脚本的线程安全(Go)
使用goroutine与channel构建流水线。
Go
goroutine
26
测试与调试并发构建
如何复现、定位、修复线程安全问题。
测试
调试
27
静态分析工具
检测构建脚本中的竞态条件与死锁。
静态分析
竞态
28
设计模式:线程安全模式
构建系统中的线程安全模式(如Thread Pool、Producer-Consumer)。
设计模式
生产者-消费者
29
性能调优
线程安全带来的开销,如何平衡安全与速度。
性能
调优
30
未来趋势
异步构建、分布式构建中的线程安全挑战。
异步
分布式
所属VIP或分类
同VIP:Qt多线程与信号槽实战
同VIP:Qt多线程与界面卡顿解决实战
同VIP:从零掌握多线程内存管理