avatar
关于thread的stack# Programming - 葵花宝典
n*w
1
“文海!——”
文海转过头,一脸怅惘的看着她。
她却不知道再该说些什么。十年了。十年前,她还是一个学生,一个高中生。他们是同
班同学。两个人同桌了三年。虽算不得什么青梅竹马,却也两少无猜。她知道文海喜欢
她。
文海是个腼腆的男孩。虽倾心已久,却怎么也不肯说出那几个字。那几年,无论她想要
什么,只要文海知道,他一定会想方设法帮她搞到。她每每有点大伤小病,文海总是比
她自己还急。她也是个懂事的女孩,她不愿文海为她太过挂心。也许是心里不愿有所愧
疚吧。
可文海终不是她心中白马王子的形象。那是个梦的年龄。每个女孩心中都有一个王子,
然而那个王子,却只会在天涯海角。
高考后,一向成绩平平的文海报了本地的一所大学。按部就班地走着大学里的每一步。
那个心高气傲的女孩去了北京。大学里,文海给她写过两次信。每天晚饭后,文海便坐
在宿舍前的石阶上。望着北方,回忆着他们当初的点点滴滴,回忆着她曾经的一颦一笑
,期盼能有来自远方的消息。可最终也是杳无回音。也许她太忙了。她和每一个成绩优
异的女孩一样,考G,考T,出国。到大洋彼岸继续追寻自己的梦想。
来到这个白人主宰的社会,她更是像众星捧月一样的被追捧。美国人
avatar
a*t
2
cs:app上这么描述的:
The memory model for the separate thread stacks is not as clean. These
stacks are contained in the stack area of the virtual address space, and are
usually accessed independently by their respective threads.
按这个说法,thread的stack是分配在 virtual memory的stack区域。
但是这样如何管理呢? 当一个thread退出后, 如果释放它的thread堆栈, 是不是就
在全局的堆栈区域里产生了一片空白区域? (因为线程的退出肯定不是按照他们建立顺序的逆序进行的。)
这点让我很不理解。
有没有什么资料能详细讲这些的? 多谢
avatar
n*w
3
注:原发于文海拾贝版。有修改。
avatar
l*g
4
what's wrong with it?
usually the stack range allocated to a thread is pretty big.

are
立顺序的逆序进行的。)

【在 a*****t 的大作中提到】
: cs:app上这么描述的:
: The memory model for the separate thread stacks is not as clean. These
: stacks are contained in the stack area of the virtual address space, and are
: usually accessed independently by their respective threads.
: 按这个说法,thread的stack是分配在 virtual memory的stack区域。
: 但是这样如何管理呢? 当一个thread退出后, 如果释放它的thread堆栈, 是不是就
: 在全局的堆栈区域里产生了一片空白区域? (因为线程的退出肯定不是按照他们建立顺序的逆序进行的。)
: 这点让我很不理解。
: 有没有什么资料能详细讲这些的? 多谢

avatar
y*e
5
为啥10年前就不相信了

【在 n****w 的大作中提到】
: “文海!——”
: 文海转过头,一脸怅惘的看着她。
: 她却不知道再该说些什么。十年了。十年前,她还是一个学生,一个高中生。他们是同
: 班同学。两个人同桌了三年。虽算不得什么青梅竹马,却也两少无猜。她知道文海喜欢
: 她。
: 文海是个腼腆的男孩。虽倾心已久,却怎么也不肯说出那几个字。那几年,无论她想要
: 什么,只要文海知道,他一定会想方设法帮她搞到。她每每有点大伤小病,文海总是比
: 她自己还急。她也是个懂事的女孩,她不愿文海为她太过挂心。也许是心里不愿有所愧
: 疚吧。
: 可文海终不是她心中白马王子的形象。那是个梦的年龄。每个女孩心中都有一个王子,

avatar
m*e
6
The description is not entirely accurate.
For Linux pthread/x86, each thread allocates a block of virtual memory for
its stack use. It's not the typical "stack area" in the sense of memory
management.

are
立顺序的逆序进行的。)

【在 a*****t 的大作中提到】
: cs:app上这么描述的:
: The memory model for the separate thread stacks is not as clean. These
: stacks are contained in the stack area of the virtual address space, and are
: usually accessed independently by their respective threads.
: 按这个说法,thread的stack是分配在 virtual memory的stack区域。
: 但是这样如何管理呢? 当一个thread退出后, 如果释放它的thread堆栈, 是不是就
: 在全局的堆栈区域里产生了一片空白区域? (因为线程的退出肯定不是按照他们建立顺序的逆序进行的。)
: 这点让我很不理解。
: 有没有什么资料能详细讲这些的? 多谢

avatar
n*w
7
因为她。。

【在 y********e 的大作中提到】
: 为啥10年前就不相信了
avatar
a*t
8
Thanks a lot. At first I thought that the "stack area" was the stack of the
process. And each thread use a part of the "stack area" as its local stack.
And this made me very confused.
I think it makes more sense that each thread is allocated with a signle "
stack area", which probably comes from the heap of the process. Am I right?
avatar
k*e
9
反正这个文海本来也是个bt。。。。跟zhy,恐怕也就一个有胆没胆杀人的区别罢了
avatar
m*e
10
Not heap, but a separately mapped area.

the
stack.

【在 a*****t 的大作中提到】
: Thanks a lot. At first I thought that the "stack area" was the stack of the
: process. And each thread use a part of the "stack area" as its local stack.
: And this made me very confused.
: I think it makes more sense that each thread is allocated with a signle "
: stack area", which probably comes from the heap of the process. Am I right?

avatar
m*t
11
看图
https://computing.llnl.gov/tutorials/pthreads/images/process.gif
https://computing.llnl.gov/tutorials/pthreads/images/thread.gif

are
立顺序的逆序进行的。)

【在 a*****t 的大作中提到】
: cs:app上这么描述的:
: The memory model for the separate thread stacks is not as clean. These
: stacks are contained in the stack area of the virtual address space, and are
: usually accessed independently by their respective threads.
: 按这个说法,thread的stack是分配在 virtual memory的stack区域。
: 但是这样如何管理呢? 当一个thread退出后, 如果释放它的thread堆栈, 是不是就
: 在全局的堆栈区域里产生了一片空白区域? (因为线程的退出肯定不是按照他们建立顺序的逆序进行的。)
: 这点让我很不理解。
: 有没有什么资料能详细讲这些的? 多谢

avatar
a*t
12
Yes, by pthread_attr_setstacksize/ pthread_attr_setstackaddr,
the stack can be set up freely, not the heap.

【在 m*****e 的大作中提到】
: Not heap, but a separately mapped area.
:
: the
: stack.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。