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