gpt4 book ai didi

完成共同工作后取消 POSIX 线程

转载 作者:太空狗 更新时间:2023-10-29 15:02:54 26 4
gpt4 key购买 nike

有多个线程在处理一个任务。一旦一个线程成功,所有线程都应该被取消,因为工作已经完成。一旦一个线程成功终止,我如何取消其他线程?谁将调用 pthread_cancel (),成功的线程将如何告诉 main 或生成它的线程(返回值?)。

更新

我不想简单地调用 exit 因为我现在想要一些控制。例如,在线程被取消后,我将通过成功的线程处理找到的结果,并可能做更多的处理,或者只是想让进程继续运行以进行更多的工作。

最佳答案

您可以选择一个简单的方案,其中 main 做所有事情。

main 启动所有线程并对某些信号量执行 down。当线程完成任务时,对该信号量执行 up 操作。当 main 解锁时,它可以pthread_cancel 所有线程(然后 pthread_join 以确保)。

这样 main 启动和停止所有线程,所以它应该非常简单。

关于完成共同工作后取消 POSIX 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7125101/

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