首页 > 解决方案 > Python获取共享内存:大小不一致

问题描述

过程1:

shm=multiprocessing.shared_memory.SharedMemory(name="shm", create=True, size=10000)
print(shm.size)

打印 10000

过程2:

shm=multiprocessing.shared_memory.SharedMemory(name="shm")
print(shm.size)

打印 12288

问题是我正在尝试使用缓冲区来支持一个 numpy 数组。然后 numpy 抱怨它不能reshape()数组,因为它的大小不同。

标签: pythonnumpyshared-memory

解决方案


共享内存四舍五入为下一页大小,在您的情况下为 3 * 4096。您必须将缓冲区切片为正确的大小

shm = multiprocessing.shared_memory.SharedMemory(name="shm")
buffer = shm.buf[:10000]

推荐阅读