我有以下鎖聲明:應該聲明一個鎖定變量是否爲volatile?
private readonly object ownerLock_ = new object();
lock (ownerLock_)
{
}
我應該使用volatile關鍵字爲我的鎖變量?
private readonly volatile object ownerLock_ = new object();
在MSDN上,我看到它通常用於無鎖定訪問的字段,所以如果我使用鎖定,我不需要使用易失性?
從MSDN:
揮發性改性劑通常被用於由 多個線程,而不使用鎖定語句來串行訪問訪問的字段。
我們需要更多的上下文來回答這個問題。與使用鎖的對象相關的鎖存在哪裏? – 2012-07-17 13:00:35
它當前存在的線程絕對是安全的。當您在鎖定塊中添加代碼時,無法保證。 – 2012-07-17 13:00:55
你不應該需要鎖定只讀對象,因爲它是隻讀的... – NominSim 2012-07-17 13:01:16