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

2017-06-10  本文已影响0人  manofmountain

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

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

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

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

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

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

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

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

1. 互斥量对象;

2. 事件互斥量对象;

3. 匿名管道对象;

4. 命名管道对象;

5. 线程对象;

6. 容器组件;

7. 应用框架。

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

上一篇下一篇

猜你喜欢

热点阅读