gpt4 book ai didi

linux - 对于多线程程序,如果一个线程死了你怎么知道?

转载 作者:可可西里 更新时间:2023-11-01 11:50:33 24 4
gpt4 key购买 nike

对于一个多线程程序,如果一个线程死了你怎么知道?

我的想法:

(1) 使用ps 来检查LWP,但它是手动的,效率不高。(2)在每个线程中设置一个try-catch,如果非正常退出,则进行捕获。(3) 让垂死线程向 std::cout 或主线程发送消息。

其他更好的想法?

谢谢

最佳答案

您可以在线程函数的早期阶段使用 pthread_cleanup_push(3)。提供给 pthread_cleanup_push 的函数可以设置一些标志,“观察者”线程可以获取这些标志。 pthread_cleanup_push 也受到 pthread_exit 的支持,并且不受异常约束。

编辑:第二种方法:使用带有析构函数的pthread_key_create(3) 并在早期调用pthread_setspecific(3)线程函数。析构函数可以向监视线程发出即将死亡的信号。

关于linux - 对于多线程程序,如果一个线程死了你怎么知道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920392/

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