gpt4 book ai didi

c++ - 终止 pthreads

转载 作者:行者123 更新时间:2023-11-30 17:23:21 28 4
gpt4 key购买 nike

可以使用 pthread_join() 停止线程。但让我们想象一下,有许多线程执行复杂的任务,并且可能不会同时停止。其中之一可能会提前停止(因为它得到了所需的结果)。但是如何停止其他几乎无限的线程呢?如果一个线程找到了正确的解决方案,则不再有剩余的解决方案,因此其他线程将永远不会成功。

当其中一个线程得到结果并停止时,如何终止所有线程?

最佳答案

随心所欲。也许最简单的方法是使用互斥体保护 bool 变量,该互斥体在找到解决方案并定期检查时设置。如果一个线程找到了变量集,则意味着其他线程找到了解决方案,并且应该终止。

您的问题表明您对线程的思考不正确。您不需要“进入”线程来使其终止或做正确的事情。您必须编写代码,以便线程首先执行正确的操作,只执行需要完成的工作,并在无事可做时终止。这样,您就不需要通过一些额外的机制强制他们做正确的事情。

另外,澄清一下,pthread_join 不会停止线程。它只是等待线程终止并在其后进行清理。

关于c++ - 终止 pthreads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623955/

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