Python 获取共享内存:大小不一致

Python getting shared memory: size is not consistent

进程 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() 数组,因为它的大小不一样。

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

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