一本书讲透Java线程:原理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.7.1 初始化未命名信号量

sem_init函数可对未命名信号量进行初始化,sem是未命名信号的对象,value是默认初始化值,其定义如下所示。

pshared参数表示这个信号量的共享范围,0表示是在线程间共享,不等于0表示在进程间共享。在线程间共享时,sem通常被指定为一个全局变量的地址或分配在堆内存上的一个变量地址。线程共享的信号量是依托进程而存在的,主进程终止时信号量会被一同销毁。