前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python多进程编程-多进程编程中的IPC(二)

python多进程编程-多进程编程中的IPC(二)

原创
作者头像
玖叁叁
发布2023-04-20 13:39:31
2880
发布2023-04-20 13:39:31
举报
文章被收录于专栏:玖叁叁

共享内存

共享内存是一种进程间通信方式,可以在多个进程之间共享同一块内存区域,实现数据共享。在Python中,可以使用multiprocessing模块中的Value和Array类来创建共享内存。

下面是一个使用共享内存实现多进程通信的示例代码:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 共享内存
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档