前4章,介绍了标准库提供的各种库工具,展示了使用方法。
第5章,涵盖了底层内存模型和原子操作的实际情况,包括原子操作如何对执行顺序进行限制(这章标志着介绍部分的结束)。
第6、7章,开始讨论高级主题,如何使用基本工具去构建复杂的数据结构——第6章是基于锁的数据结构,第7章是无锁数据结构。
第8章,对设计多线程代码给了一些指导意见,覆盖了性能问题和并行算法。
第9章,线程管理——线程池,工作队列和中断操作。
第10章,测试和调试——Bug类型,定位Bug的技巧,以及如何进行测试等等。
附录,包括新的语言特性的简要描述,主要是与多线程相关的特性,以及在第4章中提到的消息传递库的实现细节和C++11线程库的完整的参考。
In the meanwhile
I also add KAIST CS492 Concurrent Programming to this respository
https://www.youtube.com/watch?v=P_N2XRygDAk&list=PL5aMzERQ_OZ9j40DJNlsem2qAGoFbfwb4&index=4
https://docs.google.com/presentation/d/1NMg08N1LUNDPuMxNZ-UMbdH13p8LXgMM3esbWRMowhU/edit#slide=id.p
Prerequisites It is strongly recommended that students already took courses on:
Mathematics (MAS101): proposition statement and proof Data structures (CS206): linked list, stack, queue Systems programming (CS230) or Operating systems (CS330): memory layout, cache, lock Programming principles (CS220) or Programming languages (CS320): lambda calculus, interpreter Without a proper understanding of these topics, you will likely struggle in this course.
Other recommendations which would help you in this course:
Basic understanding of computer architecture (CS311) Programming experience in Rust