我正在尋找一些最佳方法來同步訪問C++中的對象的屬性的建議。該應用程序有一個內部緩存的對象有10個屬性。這些對象將被請求在集合中,然後可以修改它們的屬性並重新保存。他們可以通過2-4個線程在任何給定的時間進行訪問,但訪問並不激烈,所以我的選擇是:跨線程同步屬性的最佳方法
鎖定屬性爲每個對象使用臨界段存取。這意味着很多關鍵部分 - 每個對象一個。
當請求時返回對象的副本並具有更新函數,該函數鎖定單個關鍵部分以在適當時更新對象屬性。
我認爲選項2似乎是最有效的,但我只是想看看我是否錯過了隱藏的第三個選項,這將是更合適的。
感謝, Ĵ
它聽起來不像「緩存」的傳統含義;請澄清 – Will 2010-06-14 09:14:18
如果對象發生更改,更新情況會發生什麼?你在想一些CAS嗎? – 2010-06-14 09:26:36
對不起,緩存我只是說對象被預先加載到內存中而不是從磁盤讀取。這在很大程度上與問題無關,所以請原諒錯誤的措詞。 – JWood 2010-06-14 10:18:26