我有 2 个程序必须相互通信。他们应该共享状态(变量、文件——我不知道如何实现)。一个程序应该读取它并对更改做出反应——另一个程序应该写入这个全局状态。
为此目的使用文件甚至不慢,很难读取某人同时写入的文件。
在程序之间实现这种共享状态的最佳方法是什么?(寻找跨平台解决方案)
我有 2 个程序必须相互通信。他们应该共享状态(变量、文件——我不知道如何实现)。一个程序应该读取它并对更改做出反应——另一个程序应该写入这个全局状态。
为此目的使用文件甚至不慢,很难读取某人同时写入的文件。
在程序之间实现这种共享状态的最佳方法是什么?(寻找跨平台解决方案)
保持两个进程状态同步的正常方法是使用 IPC(进程间通信)。但是 IPC 可能无法在这里工作,如果您所说的“跨平台”是指例如 Linux 上的 python 应用程序与 Windows 上的本机 Windows 应用程序保持同步。在这种情况下,您几乎会被 REST 所困扰,使用 HTTP 来提供 Json、XML 等。
将状态写入网络可访问的临时文件会产生各种问题。更好的是让一个进程充当“服务器”,为“客户端”进程提供状态。当客户端想要更新其状态时,它会向服务器请求当时的最新状态。服务器使用包含最新状态的 Json 或等效对象进行响应。交易是离散的。没有机会在另一个进程正在写入文件时尝试读取文件,或者读取过时的文件。
实现这一点的一个想法是将数据(变量、状态等)导出到 json 文件中,并将其存储在临时文件中。完成此操作后,您可以使用第二个程序读取第一个程序生成的 json 文件并对其进行解析,以便将这些变量分配给第二个程序。
如果您在网络中使用这些程序,那么我建议使用 REST。
XML 和 Json 是跨平台交换信息的格式。您必须确保在两个程序中都有 Json 解析器。
我希望这会有所帮助。