我对此完全缺乏了解。也许这对于堆栈来说太宽泛了,但在这里:
假设我有两个同时运行的程序(用C / C ++编写),比如A和B,运行不同的PID。
有什么选择可以互相交流。例如,我如何将信息从一个传递到另一个,就像让一个人能够等待另一个信号,并做出相应的反应。
我知道MPI,但MPI通常适用于使用相同源编译的程序(因此,它更适用于并行计算,而不仅仅是为完全不同的程序进行交互而构建的相互交互)。
由于
答案 0 :(得分:5)
您必须注意“IPC”(进程间通信)。有几种类型:
答案 1 :(得分:2)
您使用众多进程间通信机制之一,例如管道(一个应用程序将字节写入管道,另一个应用程序从中读取。想象一下stdin / stdout。)或共享内存(内存区域映射到两个程序虚拟地址空间,他们可以通过它沟通。)
答案 2 :(得分:0)
相同的来源并不重要 - 一旦您的程序被编译,系统就不知道或不关心它们来自何处。
根据数据量,速度,单向或双向,可预测速率等,有不同的方式进行通信。
最简单的可能只是使用网络 - 请注意,如果您在同一台机器上,网络堆栈将自动使用一些更高性能的系统来实际发送数据(即共享内存)