如何在程序之间共享状态?

时间:2016-06-30 14:48:59

标签: cross-platform running-other-programs shared-state

我有两个必须相互通信的程序。他们应该共享状态(变量,文件 - 我不知道如何实现这一点)。 一个程序应该读取它并对变化做出反应 - 另一个程序应该写入这个全局状态。

为此目的使用文件的速度甚至都很慢,很难读取有人同时写入的文件。

在程序之间实现这种共享状态的最佳方法是什么? (寻找跨平台解决方案)

2 个答案:

答案 0 :(得分:0)

保持两个进程在状态中同步的常规方法是使用IPC(进程间通信)。但IPC可能无法在这里工作,如果通过"跨平台"你是说,例如在Linux上使用python应用程序与Windows上的本机Windows应用程序保持同步。在这种情况下,你几乎坚持使用HTTP来提供Json,XML等服务。

将状态写入网络可访问的临时文件将产生各种问题。更好的方法是让一个流程充当服务器",为客户提供状态"客户端"流程。当客户端想要更新其状态时,它会在当时从服务器请求最新状态。服务器使用包含最新状态的Json或等效对象进行响应。交易是离散的。在另一个进程正在编写文件或读取过时的文件时,没有机会尝试读取文件。

答案 1 :(得分:-1)

实现这一目标的一个想法是将数据(变量,状态等)导出到json文件中并将其存储在临时文件中。完成此操作后,使用第二个程序,您可以读取第一个程序生成的json文件并解析它,以便将这些变量分配给第二个程序。

如果您正在使用网络中的这些程序,那么我建议使用REST。

XML和Json是跨平台交换信息的格式。您必须确保在两个程序中都有一个Json解析器。

我希望有所帮助。