python多进程共享内存的读写访问控制

怎甘沉沦 提交于 2019-12-21 19:58:50

问题背景

基于SharedArray库,可以实现python多进程共享内存机制。问题在于,当内存初始化完成之后,我们希望这片内存的属性是只读的,而不希望看到意外的修改发生。

解决方案

解决方案是修改SharedArray库,库函数API attach成员提供的参数原先只有一个,即共享内存的文件名。通过修改attach的输入参数,可以允许用户将映射的内存指定为只读属性。这里面最关键的是mmap函数,attach函数内部调用mmap函数,原先的实现是将读写属性固定为允许读写。我们只需要略加修改,允许根据用户指定的参数来配置mmap,就可以达到内存区只读的目的。

测试结果

实测的结果是,将共享内存设置为read only之后,程序对于该内存的写操作会触发segment fault。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!