python多进程读写共享内存,使用管道进行同步通信后是否还需要使用锁机制

image


我的一个个人实践发现,如果多进程同时读写共享内存,即使使用管道方式进行通信以实现同步也不能实现真正的功能内存数据一致性。

根据下面资料:

https://blog.csdn.net/cswhl/article/details/111291090

可以知道,多进程读写共享内存时可能出现不同进程在不能核心上的L3缓存不一致,也就是说虽然共享内存的数据是只存储了一份,但是两个进程中每个进程在自己的运行的CPU内核的对应L3缓存上其实还有一份独立的对应缓存,这种情况下多进程中的每个进程进行读写的时候其实都是先进行自身空间下的缓存中的数据进行修改,于是就出现了多进行读写共享内存,即使使用管道进行同步通信也有可能出现缓存不一致的问题。




其实这个问题中暗含了这样一个问题:

为什么为什么加锁后多进程共享内存可以缓存一致

image




相关:

https://www.cnblogs.com/yxysuanfa/p/19102328

https://developer.aliyun.com/article/1062049

https://blog.csdn.net/qq_42982923/article/details/105507769

https://blog.csdn.net/weixin_50064049/article/details/134617400

posted on 2025-12-21 12:09  Angry_Panda  阅读(2)  评论(0)    收藏  举报

导航