免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11961 | 回复: 3
打印 上一主题 下一主题

linux线程是否共享进程所有空间 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-07-16 00:33 |显示全部楼层
是共享进程的所有空间,建议看看APUE第七章。

论坛徽章:
0
2 [报告]
发表于 2008-07-17 23:34 |显示全部楼层
原帖由 MMMIX 于 2008-7-17 22:12 发表

栈空间是独立的,还后 thread local variable 占用的空间也是独立的。


内核栈是独立的,但是用户态的栈是在同一个地址段的,不同线程使用相同的页表。所以某个线程仍然可以访问另外一个线程的内部数据。
比如说定义一个全局变量:
int *a
用来保存某个线程局部变量的地址,然后另外一个线程就可以通过这个地址去改那个线程局部变量的值。

论坛徽章:
0
3 [报告]
发表于 2008-07-18 22:24 |显示全部楼层
原帖由 MMMIX 于 2008-7-18 21:52 发表

是否共享和能不能访问没有什么关系。若线程的栈是共享的,那多个线程应该公用一个栈,这样不乱套了?


呵呵, 我误解了您之前的意思, 您的意思是说栈共享, 而我的意思是说线程共享地址空间, 是我开始没有理解正确. 确实, 它们不能够共享栈, 只是共享地址空间.

论坛徽章:
0
4 [报告]
发表于 2008-07-18 23:15 |显示全部楼层
原帖由 MMMIX 于 2008-7-18 23:09 发表

你就别用“您”了,我听者老别扭了。当然,如果你是故意的那另说


呵呵,我一般只对尊敬的人说“您”。因为我刚来CU时从你那儿学到了很多的东西,所以比较尊敬你!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP