<sys/sem.h>为 XSI(最初是 Unix System V)信号量提供接口。 这些不是基本 POSIX 标准的一部分(它们在 XSI 选项中,主要是为了传统的 Unix 兼容性),虽然它们还没有被认为是过时的/弃用的,但许多程序员认为它们已弃用,POSIX 建议:

应用程序使用

POSIX 实时扩展定义了用于进程间通信的替代接口。 需要使用 IPC 的应用程序开发人员应该设计他们的应用程序,以便可以轻松修改使用 XSI 进程间通信中描述的 IPC 例程的模块以使用替代接口。

XSI 信号量的优点和缺点在于它们是,并且必须由于它们的接口工作方式,内核空间对象。 这给您带来的主要好处是能够设置它们,以便在进程退出或意外终止时内核可以退出操作。 主要成本是每个操作都是到内核空间的往返,即它们非常慢。 使用它们的接口也非常晦涩难学,而且它们必然是进程共享资源,这意味着您必须处理共享命名空间和资源清理问题。

<semaphore.h>定义了 POSIX 信号量,它们的设计方式使得它们可以完全在用户空间中实现,除非在有争议的情况下,进程将调用内核进入睡眠状态。 它们的性能应该接近最佳(即几乎不可能击败您自己的),但它们的功能不如 XSI 信号量。 POSIX 信号量还为您提供了选择是否需要进程本地信号量(用于多线程环境,甚至在某些情况下,单线程程序中的信号处理程序)或进程共享信号量,在后一种情况下,您还可以选择是让系统按名称在共享命名空间中分配它,还是自己获取共享内存并在共享内存中初始化它。

它们彼此不同/替代,而是两种不同的实现并提供不同的功能集。 semaphore.h是posix实现和 sys/sem.h是 sysV 的实现。 POSIX 被 认为 更轻量级并被广泛使用。

原文地址:http://www.cnblogs.com/const-zpc/p/16831125.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性