gpt4 book ai didi

c - 在 pthread_create() 中,在创建的线程退出之前释放 args 时的行为

转载 作者:行者123 更新时间:2023-11-30 15:18:42 24 4
gpt4 key购买 nike

pthread_create( *thread, *attr, *start_routine, *arg) 中,如果 arg 在创建的线程退出之前被释放,那么行为是什么?我没有在 Open Group 的规范中看到它的描述,所以它很可能是未定义的,我只是找不到地方来确认这两种方式。

最佳答案

pthread 在这方面没有什么特别之处,因此您在规范中找不到对此的具体确认。来自开放组。

您的代码是唯一将取消引用传递给 pthread_create 的 arg 的代码,您对其使用及其生命周期负责。至少可以合理地假设,因为参数是一个 void *,pthread 实现不知道如何安全地取消引用,并且 pthread_create 的文档没有给出它将检查的指示线程例程的参数。

如果传入一个动态分配的对象并在释放后使用它,或者传入一个指向生命周期已结束的对象的指针,则使用该对象是未定义的行为,否则没有问题。关于 pthreads 或 pthread_create 的 arg 参数,没有什么具体的内容。

关于c - 在 pthread_create() 中,在创建的线程退出之前释放 args 时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198850/

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