2014-01-23 66 views

回答

2

两者都具有相同的基本工具 - 信号量,共享内存和消息队列。它们提供与这些工具略有不同的界面,但基本概念相同。一个显着的区别是,POSIX为SysV不具备的消息队列提供了一些通知功能。 (见mq_notify()。)

Sys V IPC已经存在了更长时间,这有一些实际的含义。

POSIX消息队列还具有优于System V消息队列以下具体优点:

  1. 该消息通知功能允许(单个)工艺以经由信号或线程时的实例化被异步通知一条消息到达先前为空的队列。

  2. 在Linux(但不是其他UNIX实现)上,可以使用poll(),select()和epoll监视POSIX消息队列。系统V消息队列不提供此功能。

+0

IBM AIX上的SysV MQ在过去支持'select(2)'。根据他们的'mq_open(2)'手册页,POSIX MQ在2016年的FreeBSD和NetBSD上受'select(2)'支持。 – stefanct