gpt4 book ai didi

我可以从 pthread_self() 获取线程的堆栈地址吗

转载 作者:太空狗 更新时间:2023-10-29 11:27:55 25 4
gpt4 key购买 nike

我想通过我们可以传递给 pthread_self() 的某个函数来获取线程的堆栈地址。是否可以?我这样做的原因是因为我想为它的堆栈中某处的线程编写我自己分配的线程标识符。我可以在堆栈末尾附近写入(堆栈内存末尾,而不是当前堆栈地址。我们当然可以预期应用程序不会到达堆栈底部,因此会使用那里的空间)。

换句话说,我想使用线程栈来放置一种线程局部变量。那么,我们有没有pthread提供的类似下面的功能呢?

stack_address = stack_address_for_thread( pthread_self() );

为此,我可以使用 gcc 的线程局部变量语法,但我处于无法使用它们的情况。

最佳答案

可能最好使用 pthread_key_createpthread_key_getspecific 并让实现担心这些细节。

这里是一个很好的用法示例:

pthread_key_create

编辑:我应该澄清一下——我建议您使用 libpthread 提供的方法来创建线程本地信息,而不是通过将某些内容推到堆栈的末端来滚动您自己的方法,否则您的信息可能会丢失。

关于我可以从 pthread_self() 获取线程的堆栈地址吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8729384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com