我正在寻找一种在 python 脚本的两个进程之间安全传递信息(!)的方法。
一个进程只读,另一个只写。我需要传递的数据是一个字典。
到目前为止,我发现的最佳解决方案是本地 SQL 服务器(因为数据本身就是一种表),我假设 SQLite 将安全地处理事务。
有没有更好的方法,也许是一个模块来锁定文件在写入时被读取,反之亦然?
我使用的是 linux ubuntu 11.10,但欢迎使用跨平台解决方案。
我正在寻找一种在 python 脚本的两个进程之间安全传递信息(!)的方法。
一个进程只读,另一个只写。我需要传递的数据是一个字典。
到目前为止,我发现的最佳解决方案是本地 SQL 服务器(因为数据本身就是一种表),我假设 SQLite 将安全地处理事务。
有没有更好的方法,也许是一个模块来锁定文件在写入时被读取,反之亦然?
我使用的是 linux ubuntu 11.10,但欢迎使用跨平台解决方案。
对于单向通信,您可以使用例如multiprocessing.Queue
或multiprocessing.queues.SimpleQueue
。
共享内存也是使用multiprocessing.Array
. 但是您必须将字典分成至少两个数组(键和值)。只有当所有值都是相同的基本类型时,这才会有效。
两者的优点multiprocessing.Queue
在于multiprocessing.Array
它们都在内部受到锁的保护,因此您不必担心。