我不想使用fork(),因为它增加了一层我希望避免的IPC管理。我想用pthread。我已经看到了克隆的strace,我不想在clone()详细级别上开始管理线程。
给他们起名字:A =主线程,B =工作线程。
我希望B能够在A离开时从A获得信号。 A可以为此注册atexit()。
A可能会从中止()或甚至SIGSEGV或其他终端信号中消失。 B的工作是关于日志记录:A和B共享一个容器,其中由A创建日志消息。如果A死亡,我希望B完成日志记录然后退出。
现在如果A退出,B退出,我丢失了日志队列中的任何内容。
所以我的问题是:有没有办法让B更有弹性,所以它坚持并且不会死于A?
答案 0 :(得分:3)
答案 1 :(得分:2)
答案 2 :(得分:2)
我认为您希望使用pthread_attribute创建分离的线程。
https://computing.llnl.gov/tutorials/pthreads/
向您展示如何 - 只需搜索“分离”:)它将在父母之后继续存在,然后您可以随意使用它。