参考链接如下:
https://beej.us/guide/bgipc/output/html/multipage/index.html
在apue的介绍里,信号量(semaphore)是一个计数器,用于多进程、多线程对共享数据的访问。为了获取共享资源,进程需要执行下列步骤:
? ? 1.测试控制该资源的信号量。
? ? 2.若此信号量的值为正,则进程可以使用该资源。进程将信号量值减1,表示它使用了一个资源单位。
? ? 3.若此信号量的值为0,则进程进入休眠状态,直至信号量的值大于0 。进程被唤醒后,返回到?1 操作。
上述操作中的信号量增、减操作都是原子操作。可以使用下述流程图来表述信号量的使用。
? ? 在使用信号量集合时,需要先进行创建,之后需要对创建好的信号量集合进行控制设置。控制函数使用semctl:
点击(此处)折叠或打开