gpt4 book ai didi

c - pthread_exit、pthread_join 和 pthread_detach 之间的区别

转载 作者:IT王子 更新时间:2023-10-29 00:03:12 24 4
gpt4 key购买 nike

我是 pthreads 的新手,我想知道确切的区别是什么。

pthread_exit 退出一个线程。因此 pthread_join 将返回;然而,detach 与 pthread_join 有什么不同呢?

例如,我创建了一个线程,假设该线程已完成,我想完全终止该线程,以便稍后重新创建它。用什么比较好。 pthread_join 还是 pthread_detach?

所以执行顺序是

pthread_exit();
pthread_join(); or pthread_detach();

?

最佳答案

pthread_exit从线程本身调用以提前终止其执行(并返回结果)。

pthread_join从另一个线程(通常是创建它的线程)调用以等待线程终止并获取其返回值。它可以在您等待调用的线程之前或之后调用 pthread_exit .如果之前,它将等待退出发生。如果之后,它只是获取返回值并释放pthread_t资源。

pthread_detach可以从线程本身或另一个线程调用,并表明您不希望线程的返回值或等待它完成的能力。这很有用,因为否则,直到您调用 pthread_join , pthread_t value 保持有效并消耗资源——至少,资源用于存储返回值并占用 pthread_t 的一个可能值。 .如果您使用 pthread_detach ,通常您会在新线程创建后立即从新线程或正在创建的线程调用它(紧接在 pthread_create 之后)。

关于c - pthread_exit、pthread_join 和 pthread_detach 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427007/

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