4006-998-758
3000+课程任你选择
C++ Multithreading & Concurrency (C++ 多线程与并发)
研发学院 O.S. APIs multi-threading & concurrency processes & threads 开课时间:2021-08-03
侯捷

台湾著名C++技术专家,两岸著名IT技术教育者,计算机图书作家/译者/书评人。深入了解企业一线实践,挖掘C++技术难点与要点,有多年的企业客户培训经验,其深度的技术剖析和丰富的案例教学,深受企业及c++开发者的广泛好评。擅长以容易理解的图片解析繁复的结构和过程,以深入浅出的方式阐述高深的技术与复杂的源代码。

30年经验于计算器技术之写作/翻译/授课,曾执教于元智大学、南京大学,现任同济大学软件学院客座教授。着有《深入浅出MFC》《STL源码剖析》《多型与虚拟》《无责任书评》等书,译有《Inside the C++ Object Model》《C++ Primer》《Effective C++》《More Effective C++》等书。


查看老师详情
课程内容

课程说明


多核CPU的进展和普及,带动软件设计由假象的Multi-tasking 发展到实象的Concurrency。万箭齐发肯定比千山独行速度更快威力更强,但其所需的知识面更广更深、手段更复杂、调试更困难。由于早期的C++标准库未曾支持多线程,程序员只能使用低阶的 O.S. APIs,或市售第三方库 (third party libraries),这影响多线程代码的可移植性和一贯性。2011起始的所谓Modern C++,陆续支持各种多线程相关构件。本课程详细介绍Modern C++标准库的各种多线程构件,并以一个中型实例详细展示如何进行Concurrency。


课程特色


从基础的processes & threads观念谈起,逐步上升到multi-threading & concurrency之各种Modern C++编程手法。本课程无上机 (上机太耗费现场时间),但会对每个主题提供适当且充足的源码示例和解说。


课程对象


「对Multithreading & Concurrency无基础无经验,但有强烈企图心」或「多线程经验丰富,渴望迅速了解Modern C++对于多线程之支持」的程序员/工程师。


课程大纲


1. 浅谈 processes & threads -- 从 O.S.角度

2. 浅谈 concurrency -- 观念和术语

3. 浅谈线程相关之APIs (Windows & POSIX)。

4. 关于线程安全 (Thread Safety);C++标准容器是否线程安全?

5. 第一步,Hello Modern C++ Multi-threading.

6. 高端接口,异步与运行结果.

  • 《future》: future, async(), promise, packaged_task,

7. 低端接口,线程操作.

  • 《thread》: thread, get_id(), hardware_concurrency(), joinable(), join(), detach(), this_thread, yield(), sleep_for(), sleep_until(),

8. 数据共享(Data Sharing) 和竞速(Racing)

  • 《condition_variable》: condition_variable, notify_all(), wait(), wait_for(), wait_until(),

  • 《mutex》: mutex, lock(), unlock(), lock_guard, unique_lock,

  • 《atomic》: atomic, load(), store(),

9. 线程通讯 ITC (Inter-Threads Communication)

10. 线程自有空间 TLS (thread local storage), thread_local

11. 线程池 (Threads Pool)

12. 一个完整的Message Passing Framework & Finite State Machine实例详解 (~800行;占本课程之大比重)

从中不但可学得多线程编程技巧,还可学得Modern C++诸多特性,乃至于 ”面向对象” 和 ”设计模式” 之重要观念。

返回上一级