POSIX 进程间同步
Posted
技术标签:
【中文标题】POSIX 进程间同步【英文标题】:POSIX interprocess synchronization 【发布时间】:2013-11-26 00:39:37 【问题描述】:我正在创建一个独立于平台的数据可视化工具,并希望它像这样工作:
-
调用者创建可视化工具的新进程(Windows 上的 CreateProcess 和
Linux 上的 fork-and-exec)
调用者创建一些同步对象并在其上阻塞
可视化工具找到对象并向其发出信号
我知道我可以在 Windows 上使用命名事件来实现第 2 步和第 3 步,但在 Linux 上我应该怎么做呢?
谢谢。
【问题讨论】:
可能是一个命名信号量。 @Duck 是的,这正是我想要的!添加问题的答案,以便我接受。谢谢。 【参考方案1】:您应该能够使用named semaphore 完成此操作,尽管它可能必须更像 (1) 创建信号量,(2) fork/exec; (3) parent 等待信号量; (4) 可视化职位。如果这里只有父/子关系,您可以使用未命名的信号量,但您必须先设置共享内存。命名更灵活一些。
【讨论】:
我已经实现了类似的东西,并且效果很好......但是在Windows上,如果所有引用该事件的进程都被删除,则事件对象将被删除,但是,在Linux上,信号量对象仍然存在持久性,如果我的进程崩溃,则在某些情况下。如何避免这种行为。以上是关于POSIX 进程间同步的主要内容,如果未能解决你的问题,请参考以下文章