本文主要是介绍3. Pthreads API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Pthreads API初版由ANSI/IEEE POSIX 1003.1-1995标准制定,当然相关POSIX标准也在持续发展和更新版本。相关的标准文档可从IEEE购买或者在网上下载。
Pthreads API的内容可以被归类为以下4部分:
- 线程管理:线程的创建、分离、连接等,还有设置/获取线程的相关属性等函数
- 互斥量:mutex是mutual exclusion的缩写,表示互斥量;对互斥量进行创建、销毁、加锁、解锁操作的函数,还有对其进行设置/获取属性的函数
- 条件变量:共享同一个互斥量的线程间的通信手段;包括创建、销毁、等待、发出信号等操作,和设置/获取属性的相关函数
- 同步:管理对锁、屏障进行读/写的相关接口
命名规范:所有的变量由pthread_开头,一些示例如下。
前缀 | 函数集合 |
pthread_ | 整体前缀 |
pthread_attr_ | 线程属性对象 |
pthread_mutex_ | 互斥量相关 |
pthread_mutexattr_ | 互斥量属性对象 |
pthread_cond_ | 条件变量 |
pthread_condattr_ | 条件变量属性对象 |
pthread_key_ | 线程私有数据 |
pthread_rwlock_ | 读/写锁相关 |
pthread_barrier_ | 用于同步的屏障相关 |
对象隐藏不透明的设计概念贯穿整个API——基础接口用于创建/修改相关对象,同时使用相关接口来修改对象的相关属性。
Pthreads API中大约有100个接口,教程将讲述其中的一部分——那些对初学者来说使用频率最高的相关接口。为了便于开发,只需要在引入Pthreads库的同时加入对pthread.h的包含即可。
目前的POSIX标准只支持C语言,Fortran编程人员可以使用封装了相关C实现的接口进行编程,有些Fortran编译器可能提供了一个Fortran版本的Pthreads API。
有关Pthreads的一些优秀教材会在参考章节给出。
这篇关于3. Pthreads API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!