我正在开发一个项目,其中我有一个主线程和一个守护线程来执行文件输出。在我的主线程中,我有一个pthread_t * _daemon要删除的字段,但显然只有在_daemon返回 NULL 之后(我知道使用pthread_exit()会导致内存泄漏)。
我怎么能在没有忙等待的情况下做到这一点?如果我尝试使用条件变量,我会遇到问题 - 当我调用signal()表单_daemon来唤醒我的主线程时,它会在返回 NULL_daemon之前删除。_daemon
我所做的只是使用一个互斥锁,该互斥锁在程序启动时锁定并在_daemon返回之前解锁。有没有更好的方法不会导致忙等待?