Pthreads和Salaris线索 两个用户级线索APIs的一个比较 BACKWARDFORWARD


第一章 介绍


pthreads是一个POSIX API(草案)标准,在一个进程中允 许用多线索控制创建程序。pthreadsd的Sunsoft早期存取实现是以POSIX 1003.4a pthreads标准的草案八为基础。现 现在SunSoft支持一种线索API, 其作为Solaris线索被了解本文件的有以下两个打算:

pthread和Solaris线索在API的动作和语法方面共享一种高级的对应。但是有几点歧义。首先,函数名字完全不同,尽管容易关联。phreads约定给每个描述函数的根名字连接前缀pthread_。 在两个API之间没有一个精确的匹配。pthread包括Solaris接口不支持的函数;Solaris线支持在pthread中找不到的函数。为给那些函数进行匹配,所连接的参数不可以--尽管信息内容在有效性上是一样的。在所有情况下,函数参数的类型将不同。两个pthread的特点不能在Solaris线索中发现,应注意属性对象和取消语义。特点区别概述如下:

在Solaris线索API中而不在pthread API中的特点 :

pthread API 和 Solaris线索API对于同一问题有不同的解决方法,即给应用软件建立并行性。这并不隐含着他们是互斥的。在pthread函数和Solaris函数的相互混合中没有限制。(尽管将不考 风台格限制)。这个方法的力量是在一种线索API中不能找到的功能不能用于加强另一种线索。类似地,在同一系统中,在运行独立地使用pthread的应用和独立使用Solaris线索的应用中,没有限制。

第二章 pthreads的特点简介

2.1 pthreads属性对象

线索实体,例如,线索本身和同步变量,能以一些不同状态存在。例如,一个线索可以是孤立的或非孤立的。或相互的范围可以是进程间的或进程内的。在Solaris线索中的约定是使用标识参数来指定一个实体以何种状态被创建。pthreads方法是要求一个属性对象的初始化、一个函数调用所分配的和返回的(以缺省状态)隐含数据类型。为每个相关线索实体定义一个属性类型。能初始化任意数量的给定类型的属性对象。 当为创建一个线索实体(例如,线索,等)而调用一个函数时,要求状态初始化,一个参数指向一个属性对象。当这个实体被创建时,它被设为属性对象所表示的状态。如果不是缺省而要求某种状态,那么有pthread函数设定属性对象中的适当状态。 使用属性对象有两个主要优点。一个是加上了可移植性。在各种实现之间,有些支持属性变化的情况。即使这样,将不需要修改创建线索实体的函数调用,因为对接口来说属性对象是隐藏的。如果目标接口所支持的属性在当前接口没有,那么为管理新的属性必须做好准备。这是一个很容易的接口任务,虽然,因为在一个好的定义位置只需初始化一次属性对象。


Copyright: NPACT BACKWARD FORWARD