2. pthreads特征综述 |
线索实体,例如,线索本身和同步变量,能以一些不同状态存在。例如,一个线索可以是孤立的或非孤立的。相互的范围可以是进程间的或进程内的。在Solaris线索中的约定是使用标识参数来指定一个实体以何种状态被创建。pthreads方法是要求一个属性对象的初始化、一个函数调用所分配的和返回的(以缺省状态)隐含数据类型。为每个相关线索实体定义一个属性类型。能初始化任意数量的给定类型的属性对象。
当为创建一个线索实体(例如,线索,等)而调用一个函数时,要求状态初始化,一个参数指向一个属性对象。当这个实体被创建时,它被设为属性对象所表示的状态。如果不是缺省而要求某种状态,那么有pthread函数设定属性对象中的适当状态。 使用属性对象有两个主要优点。一个是加上了可移植性。在各种实现之间,有些支持属性变化的情况。即使这样,将不需要修改创建线索实体的函数调用,因为对接口来说属性对象是隐藏的。如果目标接口所支持的属性在当前接口不存在,那么为管理新的属性必须做好准备。这是一个很容易的接口任务,虽然,因为在一个恰当定义位置只需初始化一次属性对象。
第二个优点是在应用程序中的状态说明是简单的。作为例子,考虑几组线索存在于一个进程内,每一个提供分离的服务,每一个拥有它自己的状态说明。在应用程序的早期阶段的一些点,可以为每一组初始化一个线索属性对象。所有将来的线索创建,将会引用针对此类型的线索初始化的属性对象。初始化阶段是简单的和局部的。任何将来的改变,可以快速地和可靠地完成。
在进程退出时间,需要注意属性对象。当初始化一个对象时,为它分配内存。此内存必须返回给系统。提供释放函数调用来完成它。
Copyright: NPACT |