我正在Ubuntu上用C进行编码。 我需要在C中编写一个计时器线程。我有这个线程
void * thread(void)
{
sleep(TIMEOUT);
pthread_mutex_lock(&mutex);
//operations
pthead_mutex_unlock(&mutex);
}
我需要另一个名为timerManager的线程可以重置计时器。我的第一个想法是杀死该线程并创建另一个线程,但这是一个问题,因为如果我在等待互斥锁时使用pthread_cancel杀死此计时器线程,则会创建死锁,因为互斥锁处于锁定状态。
我该怎么办? 谢谢大家。