共享内存是一种进程间通信方式,可以在多个进程之间共享同一块内存区域,实现数据共享。在Python中,可以使用multiprocessing模块中的Value和Array类来创建共享内存。
下面是一个使用共享内存实现多进程通信的示例代码:
import multiprocessing
def writer(n, arr):
for i in range(n):
arr[i] = i
def reader(n, arr):
for i in range(n):
print(arr[i])
if __name__ == '__main__':
num = 5
arr = multiprocessing.Array('i', num)
p1 = multiprocessing.Process(target=writer, args=(num, arr))
p2 = multiprocessing.Process(target=reader, args=(num, arr))
p1.start()
p2.start()
p1.join()
p2.join()
这里我们定义了两个进程函数writer和reader,分别用于向共享内存写入数据和从共享内存读取数据。在主程序中,我们创建了一个长度为5的整数数组arr,并使用multiprocessing.Array()函数将其转换为共享内存。然后创建了两个进程p1和p2,分别将writer和reader函数作为进程的执行函数。在进程p1中,我们向数组arr中写入了0~4的整数;在进程p2中,我们从数组arr中读取了这些整数,并将其打印出来。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。