POSIX线程简明参考
1. POSIX 1003.1c - 1995选项
Pthreads适用于多种场景。高性能计算程序可利用它支持循环的并行分解;实时程序能用它支持并发实时I/O;数据库和网络服务器可借助它轻松支持并发客户端;商业或软件开发程序可在分时系统上利用并行和并发操作。
Pthreads标准允许通过定义一组特性测试宏来确定系统提供了哪些可选功能,这些宏如表1所示。任何Pthreads实现都必须通过以下三种方式告知每个选项是否受支持:
- 在POSIX一致性文档中做出正式支持声明。可利用此信息设计应用程序,使其在特定系统上运行。
- 在<unistd.h>头文件中定义编译时符号常量。可使用#ifdef或#ifndef预处理条件来测试这些符号常量,以支持各种Pthreads系统。
- 当使用关联的sysconf符号调用sysconf函数时,返回一个非零正值。不过,对于指定选项是否存在的“特性测试”宏,这通常用处不大,因为若选项不存在,相关接口通常不会提供,代码将无法链接,甚至可能无法编译。
例如,在阅读一致性文档后,发现要支持的四个系统中有三个不提供优先级调度功能,那么可以选择避免依赖该功能。或者,在提供优先级继承功能的系统上,为互斥锁使用该功能,但编写代码时,确保在不提供此选项的系统上不会尝试访问互斥锁协议属性。
| 符号常量 | sysconf符号名 |
|---|