线程的虚拟地址空间是共享的,而进程的则是互相隔离的。
对于共享内存方案,python3.8 提供了SharedMemory实现
简单的demo如下
write.py
from multiprocessing.shared_memory import SharedMemory
from time import sleep
shm=SharedMemory(name='myshm', create=True, size=4 * 1024 ** 3)
for i in range(0, 4 * 1024 ** 3,1024*1024):
shm.buf[i:i+1024*1024] = b's'*1024*1024
print(shm.name)

本文介绍了Python3.8中的SharedMemory特性,通过示例代码展示其使用方法。SharedMemory基于shm_open和mmap,提供了一种低开销、适合大数据和多进程间通信的解决方案,尤其适用于读多写少的场景。与mmap相比,SharedMemory在性能上有优势,并且详细讨论了其工作原理和选择依据。
最低0.47元/天 解锁文章
373

被折叠的 条评论
为什么被折叠?



