void * thread1()
{
pthread_mutex_lock(mutex1);
pthread_mutex_lock(mutex2);
while (someCondition)
pthread_cond_wait(&condVar, &condMutex1);
pthread_mutex_unlock(mutex1);
pthread_mutex_unlock(mutex2);
}
void * thread1()
{
pthread_mutex_lock(mutex1);
pthread_mutex_lock(mutex2);
if (someCondition)
pthread_cond_signal(&condVar, &cmutex1);
pthread_mutex_unlock(mutex1);
pthread_mutex_unlock(mutex2);
}
我实际上有很多代码行,但这是一个简化版本。现在,似乎我的程序已陷入僵局,我无法弄清楚为什么......我发誓我认为我正在使用它。 1.)当我这样做时,我的mutex1被锁定了。 2.)我确定它与我正在使用的条件变量相同。 (我通过共享内存访问条件变量)或者更好的是,有没有办法在不同的进程中识别条件变量?