首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
windows程序中多个线程下,栈和堆是公有的还是私有的(
[单选题]
windows程序中多个线程下,栈和堆是公有的还是私有的( )
栈私有,堆公有
栈和堆均是私有的
栈和堆均是公有的
栈公有,堆私有
查看正确选项
添加笔记
求解答(2)
邀请回答
收藏(30)
分享
纠错
3个回答
添加回答
2
凉风起天末
无论在任何环境下,多线程每个线程独自拥有一个
栈区
(私有),这是由栈和多线程的特性决定的;而在Windows环境下,
堆区
对于
线程
而言是公有的(同一进程内每个线程都可以共享)。
线程栈区私有
:因为一个栈只有一个栈顶 top,那么我们假设不同线程共用一个栈,那么问题来了,假设当前线程需要进行出栈操作,那么它就会无法确定当前的栈顶元素是属于哪个线程的,是不是自己的。所以正因为栈只能对栈顶进行操作,且只有一个栈顶,所以不同的线程需要维护不同的栈(私有);
线程堆区公有
:(注意这里的堆不是算法领域的堆,存储领域的堆只是一个连续自由空间)和栈不同,堆区是通过物理地址来访问存储单元的,堆区空间是自由分配的,每次申请堆空间时都会维护一个堆地址,这样,因为是使用地址访问的,所以不同的线程访问堆空间就不会产生冲突,堆空间完全可以共享(公有)。
最后需要强调的是,以上是针对
同一个进程
内的不同线程而言的。
发表于 2019-10-01 17:25:55
回复(0)
0
天尊墨宇
选A
发表于 2020-07-19 07:18:14
回复(0)
0
骨骨开
都公有的
发表于 2019-09-21 09:12:04
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
栈
测试开发工程师
测试工程师
2018
堆
360集团
来自:
360公司-2018春...
上传者:
小小
难度:
3条回答
30收藏
2292浏览
热门推荐
相关试题
若用冒泡排序对关键字序列{10,8...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
五对夫妇甲,乙,丙,丁,戊举行家庭...
360集团
智力题
评论
(22)
来自
360公司2014校招笔试卷
ArrayList list = ...
360集团
Java
测试工程师
2018
测试开发工程师
评论
(136)
来自
360公司-2018春招...
关于下面程序说法正确的是( ...
360集团
C++工程师
2018
评论
(32)
来自
360公司-2018春招...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题