有关于多线程化的相关理论,早就在多任务操作系统的时候建立起来了。而成为所有应用程序设计和实现的时候需要考虑的因素,应该是随着英特尔IA多核平台的发展和普及。
非常推荐英特尔软件学院的多线程化配套课程,里面有有关多线程化分析设计的基本思路和方法,多线程化实现的多种方法,以及多线程化方案的性能优化方法。
这里我再补充一点是有关基于COM组件实现的应用系统进行多线程化时候的实现方式。当前COM已经没有继续技术上的发展了,但是遗留下来的相关系统 可能采用了基于COM的实现方案。那么这一情况就是我们在实现多线程优化的时候需要考虑的实现环境,因为它有别于基本的Windows Thread API,或是Linux PThread API。COM的多线程支持采用了微软自定义的套间(Apartment)的多线程模型,对多线程之间私有数据隔离采用了单套间的实现方式,对于多线程之 间的数据共享采用了多套间的实现方式。采用套间方式实现COM组件多线程调用之间的交互,避免使用更高级别的进程之间的数据共享,会给基于COM组件的应 用带来多线程优化方面的性能提升。
当然,毫无疑问COM技术已经不是主流。我上面的补充建议旨在考虑基于COM组件的遗留系统进行优化时的多线程可选方案,如果是非COM组件的运行 环境,就可以轻松采用Intel软件学院的多线程编程课程中的相关多线程化实现技术了。例如基于编译器的OpenMP,Windows Thread API等等。
本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/130729,如需转载请自行联系原作者