2014-01-23 67 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