python 如何将一个跨进程dict用共享内存实现?

发布于 2022-09-12 00:55:37 字数 144 浏览 21 评论 0

场景

有一个dict需要在跨很多进程,每次跨进程这个dict都会增减一些数据,数据大小不定

说起跨进程,优先考虑的当然是共享内存,但是大小不定这个情况又得由自己来实现动态扩容,请问各位有过这个经验么,共享内存是否可行?实现起来效果如何呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

聊慰 2022-09-19 00:55:37
  1. 应该找出性能瓶颈。
  2. 用共享内存去实现类似的 dict,结果不会更好。

不如另辟蹊径,如

  • 用简单的数据结构代替 dict,比如数组。这样用共享内存实现也更高效。
  • 把共享数据集中到一个独立的进程,开放接口给其他进程使用。典型的如 redis, 数据库。
冰雪之触 2022-09-19 00:55:37

你不需要考虑如何共享的问题,python之所以用的人多,就是因为它提供了足够简单的操作给普通人。你直接定义一个dict的变量,直接在“进程函数”中操作这个变量就行,要考虑的就仅仅是用multiprocess 中的lock 解决进程同步的问题。如果你可以用多线程实现尽量就不要用多进程,python的多进程为了方便普通人用,设计的并不好(其实多线程也是)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文