gpt4 book ai didi

c - pthread 函数参数应该分配在栈上还是堆上?

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:19 25 4
gpt4 key购买 nike

我已经使用 pthreads 为生产者-消费者/有界缓冲区问题编写了一个“解决方案”,并且我使用 72 位结构来存储所有线程共享的数据和同步类型。该结构在堆上分配,但在堆栈上分配它并在 pthread_create 中传递它的地址也可以。在 使用 pthread_detach 的情况下,是否有任何理由更喜欢 pthread 参数的堆栈分配而不是堆分配(反之亦然)?

编辑:
该结构在 main() 中声明,所有线程都保证在 main() 完成之前完成。超出范围不是问题。

最佳答案

这取决于与正在运行的线程相关的堆栈分配变量的生命周期。

如果保证线程在堆栈变量超出范围之前退出(即您在所有等待线程上调用 pthread_join),那么使用局部变量就可以了。如果线程仍在运行时堆栈变量超出范围,则您必须动态分配它们。

关于c - pthread 函数参数应该分配在栈上还是堆上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870952/

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