3
global variable 'temp';
**threadA**
-pthread_mutex_lock-
if (temp == 'x')
-pthread_cond_wait-
do this
-pthread_mutex_unlock-
**threadB**
-pthread_mutex_lock-
if (someCondition == true)
temp = 'x'
-pthread_cond_signal-
-pthread_mutex_unlock-
在我的情況我可能沒有任何循環,我只是有一個條件。所以,我想當temp =='x'時,那麼threadA應該這樣做。pthread_cond_wait沒有while循環
- 當處理
pthread_cond_wait
時,循環是強制性的嗎? - 如果我們不需要循環,編寫代碼的另一種方式是什麼?
- 這是編寫代碼的正確方法嗎?
*「可能會發生來自pthread_cond_timedwait()或pthread_cond_wait()函數的虛假喚醒。」*這是否意味着喚醒可能會自動發生而沒有任何原因? –
是的,這就是標準所說的 - 一個具體的實現可能選擇實現更嚴格的語義。 – cmeerw