命名信号量和未命名信号量
创建或使用一个现有信号量
释放信号量资源
销毁一个命名信号量
信号量 sem_unlink 与 sem_close 的主要区别在于它们对信号量的处理方式不同。
sem_close 函数用于关闭一个已经打开的信号量。关闭操作只是简单地结束了调用进程与信号量之间的关联,而信号量本身在系统中仍然存在。这意味着,即使调用了 sem_close,信号量也不会立即从系统中被删除,只要还有其他进程仍然使用该信号量1。
sem_unlink 函数则用于当一个命名信号量不再需要时,将其从系统中删除。这个操作会导致系统立即释放与该命名信号量相关的资源。当调用 sem_unlink 时,如果系统中没有其他进程再使用该命名信号量,那么该信号量就会被彻底地从系统中移除2。
简而言之,sem_close 只是断开了调用进程与信号量的关联,而 sem_unlink 则是从系统中彻底移除了信号量,确保了资源的有效利用和避免闲置的信号量组占用系统资源
获取信号量的三种方法
归还信号量
在单个进程中使用未命名信号量
丢弃未命名信号量
检索信号量值