Linux 系统编程 -(pthread) 线程通信 (围栏机制)
1. 围栏机制介绍
Linux 线程里还支持一个围栏机制--也就是屏障功能。这个围栏机制,可以设置等待的线程数量,当指定数量的线程都到齐之后再全部唤醒—放行。它的的功能和它的名字是匹配的,就是围栏,就像在赛跑比赛场上,要进行比赛时,必须等待所有运动员都到齐全了,都到起跑线上了,然后一声令下,大家再一起跑出去。
在 Linux 线程里的屏障功能由pthread_barrier
系列函数实现,在<pthread.h>中定义,功能主要是用于多线程的同步。
2. 围栏机制相关的函数介绍
相关的函数接口如下:
复制代码
3. 围栏机制使用案例 1
下面代码里设置栏杆等待线程数量为 10 个,然后启动循环创建 10 个线程,当 10 个线程创建完毕之后,一起运行。
设置线程为分离属性。
复制代码
4. 围栏机制使用案例 2
下面代码里设置栏杆等待线程数量为 10 个,然后启动循环创建 10 个线程,每个新的线程创建之后,都会在函数里打印第几个线程准备运行,当 10 个线程创建完毕之后,都在等待了,然后再一起放行。
设置线程为结合属性。
复制代码
版权声明: 本文为 InfoQ 作者【DS小龙哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/f2918213f08a5690f1b3cb6f4】。文章转载请联系作者。
评论