在多个Python进程之间共享字典的最佳方法是什么?

1 投票
2 回答
588 浏览
提问于 2025-04-17 13:46

所有的程序都会从这个字典中读取数据,也会往里面写数据。我希望对这个共享字典的操作能尽可能快(比如说在50微秒以内)。

通过multiprocessing.Manager来共享字典对我来说速度不够快。

2 个回答

-2

我觉得可以用普通的互斥锁和锁来解决这个问题,对吧?可以使用'threading'库里的 lock.acquire() 和 lock.release() 这两个方法,应该会有帮助,http://docs.python.org/3.3/library/threading.html

不过我觉得你可能不会因此提高速度,因为你的设计似乎受到了 Python 全局解释器锁(GIL)的限制,这可能是个障碍。

我可能错了-

1

50微秒的时间限制其实挺宽松的。

你能不能把字典的键当作存储在memcached里的数据来处理呢?

这篇2009年的基准测试比较显示,python-memcache的速度完全够用 - http://amix.dk/blog/post/19471

还有一个叫dogpile.cache的库 - http://pypi.python.org/pypi/dogpile.cache - 也可以使用memcached作为后端存储。

我不太确定把字符串转换成python对象时会有多慢。

撰写回答