信号量是IPC机制吗?

时间:2010-02-11 08:45:42

标签: ipc semaphore

信号量是IPC机制吗?

4 个答案:

答案 0 :(得分:11)

是的,在许多平台下,信号量可以跨进程同步。您可以使用“命名”信号量 - 多个进程通过名称访问对象,类似于文件系统对象。

在POSIX中,您可以通过sem_open()创建命名信号量。对于unamed信号量,如果sem_init()的第二个参数非零,则可以进行进程间处理,但我不确定未命名的进程间信号量应该如何工作。

请注意,在某些系统上,如果不支持进程间信号量(例如OpenBSD),这些函数可能会失败ENOSYS

在Windows中,您可以通过CreateSemaphore()创建命名信号量,如@sergiom所述。

答案 1 :(得分:2)

这取决于操作系统

在Windows中,可以使用CreateSemaphore()和OpenSemaphore()函数在进程之间访问命名信号量

http://msdn.microsoft.com/en-us/library/ms682438%28VS.85%29.aspx

答案 2 :(得分:2)

实际上,信号量是一种同步工具,但它被视为一个IPC bcoz,它被一个以上的进程访问

答案 3 :(得分:1)

  

POSIX信号量可以是未命名的   命名。未命名的信号量是   在进程内存中分配和   初始化。未命名的信号量可能   可以被多个进程使用,   取决于信号量的方式   分配和初始化。 [...]

您想知道more吗?