python 如何将一个跨进程dict用共享内存实现?
场景
有一个dict需要在跨很多进程,每次跨进程这个dict都会增减一些数据,数据大小不定
说起跨进程,优先考虑的当然是共享内存,但是大小不定这个情况又得由自己来实现动态扩容,请问各位有过这个经验么,共享内存是否可行?实现起来效果如何呢?
回答:
- 应该找出性能瓶颈。
- 用共享内存去实现类似的 dict,结果不会更好。
不如另辟蹊径,如
- 用简单的数据结构代替 dict,比如数组。这样用共享内存实现也更高效。
- 把共享数据集中到一个独立的进程,开放接口给其他进程使用。典型的如 redis, 数据库。
回答:
你不需要考虑如何共享的问题,python之所以用的人多,就是因为它提供了足够简单的操作给普通人。你直接定义一个dict的变量,直接在“进程函数”中操作这个变量就行,要考虑的就仅仅是用multiprocess 中的lock 解决进程同步的问题。如果你可以用多线程实现尽量就不要用多进程,python的多进程为了方便普通人用,设计的并不好(其实多线程也是)
以上是 python 如何将一个跨进程dict用共享内存实现? 的全部内容, 来源链接: utcz.com/a/159323.html