C++面向对象多线程学习笔记_前言

此系列文章笔记由阅读Cameron & Tracery合作所编写,由周良忠先生所译的C++面向对象多线程编程一书而来。

多线程编程相对来说比较难设计,难编码实现,也较难测试其各项功能。多线程一般会给我们的应用程序带来死锁、数据竞争、优先权倒置与无限延迟等诸多挑战。

这些互斥性问题轻则让应用程序速度变慢,重则使其崩溃。但是面对越来越复杂的应用需求,多线程程序设计却渐渐已成了眼下必须的设计。主要原因如下:

1. 处理并行计算的需要(现在的处理器多个多核处理器,而很多应用程序更是直接部署在包含有多个计算节点的集群之上);

2. 随着应用范围的拓展,需要超长计算时间的应用程序越来越多;

3. 很多应用在等待网络、文件系统、用户或者其它I/O操作时会耗费大量的执行时间,而多线程程序经过良好设计可以避免这一点。

在此书中作者讨论了如何通过设计性能优良的C++组件来消除编写多线程程序时遇到的缺陷。讨论了用一种架构途径来

设计多线程应用程序,还解释了如何构建用于实现支持并发的软件机制的C++组件。这些组件包括如下:

1. 互斥量对象;

2. 事件互斥量对象;

3. 匿名管道对象;

4. 命名管道对象;

5. 线程对象;

6. 容器组件;

7. 应用框架。

书中作者探索了增量多线程编程的概念,通过使用封装、接口类、宿主类以及域类来构建多线程组件。然后组合多线程组件形成面向对象多线程架构。多线程架构成为构建可靠多线程应用程序的基础。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容