- 两者有什么区别
System V IPC
and POSIX IPC
?
- 为什么我们有两个标准?
- 如何决定使用哪些IPC功能?
两者都有相同的基本工具——信号量、共享内存和消息队列。它们提供的界面与这些工具略有不同,但基本概念是相同的。一个显着的区别是 POSIX 为消息队列提供了一些 Sys V 没有的通知功能。 (看mq_notify()
.)
Sys V IPC 已经存在了很长时间,这有几个实际意义——
首先,POSIX IPC 的实施不太广泛。我为 POSIX IPC 编写了一个 Python 包装器它的文档列出了我对各种平台上的 POSIX IPC 实现的了解.
在该文档中列出的所有平台上,Sys V IPC 已完全实现(据我所知),而您可以看到 POSIX IPC 并未实现。
它们相对年龄的第二个含义是 POSIX IPC 是在 Sys V IPC 使用一段时间后设计的。因此,POSIX API 的设计者能够学习 Sys V API 的优点和缺点。因此 POSIX API 更简单
在我看来,更容易使用,我推荐它而不是 Sys V API。
我应该指出,我从未运行过任何性能测试来比较两者。我认为旧的 API (Sys V) 会有更多时间
进行性能调整,但这只是猜测,当然不能替代现实世界的测试。
至于为什么有两个标准——POSIX 创建了他们的标准,因为他们认为这是对 Sys V 标准的改进。但如果每个人都认为 POSIX IPC 更好,那么许多程序仍然使用 Sys V IPC,并且将它们全部移植到 POSIX IPC 需要数年时间。在实践中,这是不值得的,因此即使从明天开始所有新代码都使用 POSIX IPC,Sys V IPC 也会保留很多年。
在不了解您打算做什么的情况下,我们无法告诉您应该使用哪一个,但是您在这里得到的答案应该为您提供足够的信息来自行决定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)