![](https://csdnimg.cn/release/download_crawler_static/10568711/bg10.jpg)
xiv 目录
16.6.4 等待屏障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
16.6.5 屏障示例代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
16.7 信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
16.7.1 信号量控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
16.7.2 无名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
无名信号量初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
销毁无名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
16.7.3 有名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
创建或打开有名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
分离有名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
关闭有名信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
16.7.4 获取信号量值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
16.7.5 阻塞方式等待信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
16.7.6 非阻塞方式获取信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
16.7.7 指定阻塞时间等待信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . 338
16.7.8 发送信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
16.7.9 无名信号量使用示例代码 . . . . . . . . . . . . . . . . . . . . . . . . . . 339
16.8 消息队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
16.8.1 消息队列控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
16.8.2 创建或打开消息队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
16.8.3 分离消息队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
16.8.4 关闭消息队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
16.8.5 阻塞方式发送消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
16.8.6 指定阻塞时间发送消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
16.8.7 阻塞方式接受消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
16.8.8 指定阻塞时间接受消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
16.8.9 消息队列示例代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
16.9 线程高级编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
16.9.1 线程属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
线程属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
线程属性初始化及去初始化 . . . . . . . . . . . . . . . . . . . . . . . . . 349
线程的分离状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
线程的调度策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
线程的调度参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
线程的堆栈大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
线程堆栈大小和地址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
线程属性相关桩函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
线程属性示例代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
16.9.2 线程取消 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
发送取消请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
设置取消状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
设置取消类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
设置取消点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
取消点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
线程取消示例代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356