没有合适的资源?快使用搜索试试~ 我知道了~
Unix-Linux-Windows-OpenMP多线程编程.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 144 浏览量
2022-10-12
20:46:30
上传
评论
收藏 732KB PDF 举报
温馨提示
试读
30页
。。。
资源推荐
资源详情
资源评论
Unix_Linux_Windows_OpenMP 多线程编程
第三章 Unix/Linux 多线程编程[引言]本章在前面章节多线程编程基础知识的
基础上,着重介绍 Unix/Linux 系统下的多线
程编程接口及编程技术。
3.1 POSIX 的一些基本知识
POSIX 是可移植操作系统接口(Portable Operating System
Interface)的首字母缩写。
POSIX 是基于 UNIX 的,这一标准意在期望获得源代码级的软件可移植性。换
句话说,为一
个 POSIX 兼容的操作系统编写的程序,应该可以在任何其它的 POSIX 操作系
统(即使是来自
另一个厂商)上编译执行。POSIX 标准定义了操作系统应该为应用程序提供的
接口:系统调
用集。POSIX 是由 IEEE(Institute of Electrical and
Electronic Engineering)开发的,
并由 ANSI(American National Standards Institute)和 ISO(International
Standards
Organization)标准化。大多数的操作系统(包括 Windows NT)都倾向于开发它
们的变体
版本与 POSIX 兼容。
POSIX 现在已经发展成为一个非常庞大的标准族,某些部分正处在开发过程
中。表 1-1 给
出了 POSIX 标准的几个重要组成部分。POSIX 与 IEEE 1003 和 2003 家族的
标准是可互换
的。除 1003.1 之外,1003 和 2003 家族也包括在表中。
管理 POSIX 开放式系统环境(OSE) 。IEEE 在 1995 年通过了这项标准。 ISO
的
1003.0
版本是 ISO/IEC 14252:1996。
被广泛接受、用于源代码级别的可移植性标准。1003.1 提供一个操作系统的
C 语
1003.1 言应用编程接口(API) 。IEEE 和 ISO 已经在 1990 年通过了这个标
准,IEEE 在
1995 年重新修订了该标准。
一个用于实时编程的标准(以前的 P1003.4 或 POSIX.4)。这个标准在 1993
年被
1003.1b
IEEE 通过,被合并进 ISO/IEC 9945-1。
一个用于线程(在一个程序中当前被执行的代码段)的标准。以前是 P1993.4
或
1003.1c POSIX.4 的一部分,这个标准已经在 1995 年被 IEEE
通过,归入 ISO/IEC
9945-1:1996。
一个关于协议独立接口的标准,该接口可以使一个应用程序通过网络与另一个
应用
1003.1g
程序通讯。 1996 年,IEEE 通过了这个标准。
一个应用于 shell 和工具软件的标准,它们分别是操作系统所必须提供的命令
处
1003.2 理器和工具程序。 1992 年 IEEE 通过了这个标准。ISO 也已经通过
了这个标准
(ISO/IEC 9945-2:1993) 。 1003.2d 改进的 1003.2 标准。
一个相当于 1003.1 的 Ada 语言的 API。在 1992 年,IEEE 通过了这个标
准。并
1003.5
在 1997 年对其进行了修订。ISO 也通过了该标准。
一个相当于 1003.1b(实时扩展)的 Ada 语言的 API。IEEE 和 ISO 都已经通
过
1003.5b
了这个标准。ISO 的标准是 ISO/IEC 14519:1999。
一个相当于 1003.1q(协议独立接口)的 Ada 语言的 API。在 1998 年, IEEE
通
1003.5c
过了这个标准。ISO 也通过了这个标准。
一个相当于 1003.1 的 FORTRAN 语言的 API。在 1992 年,IEEE 通过了这个
标准,
1003.9
并于 1997 年对其再次确认。ISO 也已经通过了这个标准。
一个应用于超级计算应用环境框架(Application Environment
Profile,AEP)的
1003.10
标准。在 1995 年,IEEE 通过了这个标准。
一个关于应用环境框架的标准,主要针对使用 POSIX 接口的实时应用程序。在
1003.13
1998 年,IEEE 通过了这个标准。
1003.22 一个针对 POSIX 的关于安全性框架的指南。
一个针对用户组织的指南,主要是为了指导用户开发和使用支持操作需求的开
放式
1003.23
系统环境(OSE)框架
针对指定和使用是否符合 POSIX 标准的测试方法,有关其定义、一般需求和指
导
2003
方针的一个标准。在 1997 年,IEEE 通过了这个标准。
这个标准规定了针对 1003.1 的 POSIX 测试方法的提供商要提供的一些条
件。在
2003.1
1992 年,IEEE 通过了这个标准。
一个定义了被用来检查与 IEEE 1003.2(shell 和 工具 API)是否符合的测试
方
2003.2
法的标准。在 1996 年,IEEE 通过了这个标准。
表 3.1 POSIX 标准的重要组成部分
本章将重点讲述“POSIX 线程”,即符合 POSIX 国际正式标准 POSIXl003.1c-
1995 的部分。
本章假定用户使用的编程语言为 ANSI C 语言。
3.2 POSIX 线程库
首先,在编写 POSIX 多线程 C 程序时,需要包含头文件’pthread.h’。POSIX
线程函数都
以’pthread_’开头。在本章中,我们将介绍一下线程操作函数:
POSIX 函数 描述
pthread_cancel 终止另一个线程 pthread_create 创建一个线程
pthread_detach 设置线程以释放资源
pthread_equal 测试两个线程 ID 是否相等 pthread_exit 退出线程,而不退出
进程 2 pthread_join 等待一个线程
pthread_self 找出自己的线程 ID
表 3.2 POSIX 线程管理函数
3.2.1 创建线程
‘pthread_create’ 函数创建一个线程。int pthread_createpthread_t
*restrict thread, const
pthread_attr_t* restrict attr, void **start_routinevoid *,
void *restrict arg;
参数 thread 指向保存线程 ID 的 pthread_t 结构。参数 attr 表示一个封
装了线程的各种属
性的属性对象,用来配置线程的运行,如果为 NULL,则使新线程具有默认的属
性。线程属
剩余29页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功