0
我有一個死鎖的代碼。我想到的是如何解決這個問題的幾個解決方案,其中之一是做原子如下:如果條件在pthread中原子地成立,是否可以執行cond_wait?
if(!ready)
pthread_cond_wait(&(cond[0]), &(lock[0]));
但是,我不知道是否有可能在並行線程原子地做到這一點,因爲我不能在文檔中找不到任何東西,也許可能有一個關於如何去做的技巧。我不會解釋代碼的其餘部分,因爲我認爲它不適合回答這個問題。
謝謝。
這是真的,但我想避免讓其他線程試圖獲取鎖定[0]只是爲了設置就緒變量,因爲這意味着必須等到這個線程釋放鎖定,只有當它發生時纔會發生等待。 – fc67
您只需在測試前立即將其鎖定即可。 – caf