我有以下情況。我有一個寫入數組的線程。 寫入該數組後,我需要讀取該數組。讀發生在寫入數組後,我可以通過另一種方式保證(這意味着我不需要條件變量,但只是在讀取數組中的「刷新」內容時)。該數組稍後將從另一個線程讀取。從另一個線程寫入陣列中獲取數據
編輯:此外,寫作將發生在不同的時間,數組不是一次寫入。
我需要讀取數組的全部內容,其中所有條目已經刷新並且與讀取時的實際值一致。現在值不刷新。
什麼是同步這個最好的方法?
- mutex?
- atomic?
- 柵欄?
我不知道我該怎麼做。我知道一個變量就足夠了,但這是一個數組。我不確定正確的做法是什麼。 我不知道該怎麼做:鎖?
如果您確定不再需要對陣列進行寫操作,則根本不需要同步。多個閱讀器不需要保護。 –
沒有更多的寫入操作會完成,但是我沒有看到讀取器線程更新的數據,所以我假設我缺少一些同步。 –
爲了簡單起見,我建議你使用'mutex'。開始在數組中寫入時鎖定,完成時解鎖,讀取數組時相同。 – chema989