我有可以在不同模式下打開的對象,其中包括讀寫。 如果你打開了它念你仍然可以調用這應該稱爲互斥鎖嗎?
object->upgradeOpen();
常見的做法是在我們的代碼調用
當你寫完。
我通常會發現使用我在C++基礎知識中學到的互斥概念更容易,您可以在此互斥對象的構造函數和析構函數中完成此升級打開和降級打開。
class ObjectMutex{
public:
ObjectMutex(const Object& o)
: m_o(o)
{
m_o.upgradeOpen();
}
~ObjectMutex(){
m_o.downgradeOpen();
}
private:
Object m_o;
};
唯一的問題是,它並沒有真正鎖定對象,使其線程安全的,所以我不認爲這真的是一個互斥。 是否有另一個公認的名稱來稱作這種結構?
原理聽起來很正確的,但我可以用它來實現我的代碼? – turoni
@turoni是的!看看鏈接的問題,瞭解如何在可升級的互斥體周圍構建RAII封裝的示例 – Curious
您可以添加一個代碼示例,因爲我沒有看到如何使用它比使用我寫的簡單類更容易。 – turoni