2013-06-25 69 views
3

我想創建基於文件的鎖定,以確保對關聯資源的獨佔訪問。 boost:interprocess::file_lock適用於分離過程,但不適合分離線程。如果我們將文件名提取到唯一的完整路徑(例如沒有相對指定的鎖文件,如something/x.lock),並將這些互斥鎖與它們相關聯,則可以通過額外的boost::recursive_mutex解決該問題。C++:線程和進程之間的文件鎖定

我想有一個更容易和相對標準的基於文件的鎖定方式,適用於線程和進程。

回答

3

改爲使用recursive_named_mutex。跨進程以及線程工作。便宜很多,錯誤較少​​易於提升。

+0

名稱的長度/內容是否有任何限制?這些互斥體在哪裏存儲? (我知道重點是我不必知道) – Notinlist

+0

這些是操作系統實現細節。你沒有提到你的操作系統。如果你想知道,你可以看看升壓代碼。 –

+0

爲什麼你建議使用遞歸互斥而不是常規的非遞歸互斥? – shi