OS X 中跨进程通信的首选方法是什么?
What is the Preferred Method for Cross-Process Communication in OS X?
很简单,我需要一个在不同用户拥有的进程之间发送广播类型事件的基本方法,这样我就可以协商一个简单的排队机制(以防止进程试图同时完成所有工作).
现在,我所知道的执行此操作的唯一系统是通过 notifyd
,或更具体地说,通过使用 Objective-C(或实际上,C++/ C?).
然而,很多事情都发生了变化,特别是我正在尝试重新使用 Swift,同时编写一个可以很好地与新的 Mac App Store 所需的沙盒配合使用的应用程序方案。所以我很好奇,通过 notifyd
进行的通信是否仍然是 OS X 中进程间通信的首选机制,还是有其他我更好用的东西?
正如我所说,我的需求很简单;我真的只需要能够让其他进程知道新进程何时启动,这样他们就可以协商一个简单的系统以循环方式执行他们的工作,而不需要某种中央进程(因为该方案需要提升工作权限)。
在 OS X 中有几种方法可以做到这一点,一个列表涵盖了其中的许多方法 here。我会说首选方法取决于您要完成的任务。如果您真的只需要发送通知,那么 BSD 通知系统是一种轻量级的方式。
很简单,我需要一个在不同用户拥有的进程之间发送广播类型事件的基本方法,这样我就可以协商一个简单的排队机制(以防止进程试图同时完成所有工作).
现在,我所知道的执行此操作的唯一系统是通过 notifyd
,或更具体地说,通过使用 Objective-C(或实际上,C++/ C?).
然而,很多事情都发生了变化,特别是我正在尝试重新使用 Swift,同时编写一个可以很好地与新的 Mac App Store 所需的沙盒配合使用的应用程序方案。所以我很好奇,通过 notifyd
进行的通信是否仍然是 OS X 中进程间通信的首选机制,还是有其他我更好用的东西?
正如我所说,我的需求很简单;我真的只需要能够让其他进程知道新进程何时启动,这样他们就可以协商一个简单的系统以循环方式执行他们的工作,而不需要某种中央进程(因为该方案需要提升工作权限)。
在 OS X 中有几种方法可以做到这一点,一个列表涵盖了其中的许多方法 here。我会说首选方法取决于您要完成的任务。如果您真的只需要发送通知,那么 BSD 通知系统是一种轻量级的方式。