首页
Python中文网
在线手册
Python入门
Linux教程
Python高级教程
登录
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
扫一扫,访问微社区
只需一步,快速开始
论坛
BBS
Python教程
在线手册
Python入门
Linux教程
Python高级教程
Python函数详解
搜索
本版
帖子
用户
道具
勋章
任务
设置
退出
Python论坛 - 国内最好的Python中文社区
»
论坛
›
技术交流
›
python问答 - 求助悬赏区 Help!
›
python for循环中创建共享内存数组为什么分配地址一样 ...
返回列表
查看:
1942
|
回复:
1
[求助]
python for循环中创建共享内存数组为什么分配地址一样
myliangtao
当前离线
积分
1
0
主题
1
帖子
1
积分
贫民
贫民, 积分 1, 距离下一级还需 59 积分
贫民, 积分 1, 距离下一级还需 59 积分
积分
1
发消息
myliangtao
发表于 2018-10-15 11:45:37
|
显示全部楼层
|
阅读模式
本帖最后由 myliangtao 于 2018-10-15 11:53 编辑
如图,每次对象不同,但是地址出现了循环重用,不明白为什么
但是如果把共享内存放入数组则不会出现该问题,
如下图,请大牛解释一下为什么
回复
使用道具
举报
myliangtao
当前离线
积分
1
0
主题
1
帖子
1
积分
贫民
贫民, 积分 1, 距离下一级还需 59 积分
贫民, 积分 1, 距离下一级还需 59 积分
积分
1
发消息
myliangtao
楼主
|
发表于 2018-10-15 17:04:08
|
显示全部楼层
自己回答一下吧:
应该是for循环中每次分配共享内存后,前一次分配的共享内存对象没有引用,被垃圾回收自动释放,所以再次分配会创建新的对象,但是内存地址会重复利用,因此又会再次分配到同一个地址。
因此在创建共享内存后,传递给子进程后,主进程中改对象不在引用会被释放,然后再次被创建,导致多个不同子进程访问同一共享内存地址;
采用数组存储后,改共享内存对象不会被垃圾回收,共享内存地址也就不会被重复分配;
回复
支持
反对
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表