2
讓我們來看看下面的代碼。 假設一個線程看到準備好 = false,因此等待條件變量* mv_cv *,因此釋放互斥量* my_mutex *並將自己置於睡眠狀態。 一段時間後,虛假地將線程喚醒,而準備好仍然保留值爲false。我的問題是: 線程現在是否在喚醒之前通過重新獲取互斥鎖來保持互斥鎖* my_mutex *?線程是否存在虛假喚醒的相應互斥量?
pthread_mutex_lock(&my_mutex);
while (!ready)
{
pthread_cond_wait(&my_cv, &my_mutex);
}
//some operation goes here
pthread_mutex_unlock(&my_mutex);
賀'虛假的喚醒是一種成功的回報'。我明白你在說什麼,但它仍然聽起來像是在文件系統文檔中的警告:「注 - 可能偶爾打開錯誤的文件。 –