线程的虚拟地址空间是共享的,而进程的则是互相隔离的。
对于共享内存方案,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)
read.py