ACE中多线程的应用
目的
有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理的API可能深有体会,这些API提供了相同或是相似的功能,但是它们的API的差别却极为悬殊,十分令人头痛。ACE_Thread提供了对不同OS的线程调用的简单包装,通过一个通用的接口进行处理线程创建、挂起、取消和删除等问题。
用于创建和管理线程的ACE类
1、ACE_Thread_Manager:这是负责创建、管理和同步线程的主要的类。每种操作系统在处理线程方面有细微差异,这个类对应用程序开发人员隐藏这些差异。
2、ACE_Sched_Params:使用这个类管理各个线程的调度优先级,调度优先级是在 ACE 源代码发行版的 ace/Sched_Params.h 头文件中定义的。可以采用不同的调度策略,可以是 “先到先服务” 的循环方式。
3、ACE_TSS:在多线程应用程序中使用全局变量会导致同步问题。
4、ACE_TSS:类提供与线程相关的存储模式,可以对那些对于程序是全局的,但是对于每个线程私有的数据提供抽象。
ACE_Thread_Manager类
本文主要介绍ACE_Thread_Manager类,因为在平时用它也是比较多的。其提供如下的功能:
a)它可以生成一个或更多线程,每个线程运行自己指定的函数。
b)它可以作为一个集合(称为 线程组)管理相关的线程。
c)它管理各个线程的调度优先级。
e)它允许在线程之间进行同步。
f)它可以修改线程属性,比如堆栈大小。