系统软件工程师、高性能计算应用开发人员、后端服务开发者。
掌握多线程编程的基本模型(POSIX 线程、OpenMP、C++ 线程)。
理解并发数据结构的实现原理与设计模式。
能够分析并解决多核编程中的性能瓶颈与并发问题。
并行计算基础:并行性与并发性的区别;任务并行 vs 数据并行;Amdahl 定律与 Gustafson 定律。
线程与进程:进程与线程的资源开销对比;POSIX 线程的创建、管理与同步;C++11 线程库的使用。
同步原语:互斥锁(Mutex)的实现原理;读写锁(RWLock)的适用场景;信号量(Semaphore)与条件变量(Condition Variable)。
原子操作与无锁编程:原子操作的硬件支持(CAS、LL/SC);C++11 原子库;无锁编程的 ABA 问题与内存顺序。
并发数据结构:并发队列的实现(锁队列、无锁队列);并发哈希表的设计;并发计数器与性能伸缩性问题。
锁的优化技术:细粒度锁与锁分桶;读写锁的优化;自旋锁与互斥锁的选择;避免死锁的设计模式。
OpenMP 并行编程:OpenMP 的并行区域;工作共享结构(for、sections、task);数据环境与变量共享;同步机制(critical、atomic、barrier)。
任务级并行:任务的概念与任务调度;C++ 任务并行库(Task Parallelism);线程池的设计与实现。
伪共享与缓存一致性:缓存行的概念;伪共享(False Sharing)的识别与避免;数据对齐与填充技术。
并发编程模式:生产者-消费者模式;工作窃取(Work Stealing)算法;流水线并行模式。
并发程序的调试与测试:数据竞争检测(Helgrind、ThreadSanitizer);死锁检测;并发程序的压力测试方法。
综合实战项目:设计并实现一个高性能并发哈希表,支持无锁读与细粒度锁写,并测试其在多核环境下的性能扩展性。