编辑:大量修改以澄清此问题与单身人士无关
我发现自己编写了这样的代码:
if(resourceOnDiskNeedsUpdating)
{
lock(lockObject)
{
if(resourceOnDiskNeedsUpdating) // has a previous thread already done this?
UpdateResourceOnDisk();
}
}
return LoadResourceFromDisk();
UpdateResource()
是一个缓慢的操作。
这种模式有意义吗?
还有更好的选择吗?
答案 0 :(得分:4)
答案 1 :(得分:2)
我使用的替代方法是使用'volatile'关键字。 http://msdn.microsoft.com/en-us/library/x13ttww7%28v=vs.71%29.aspx