【发布时间】:2010-06-09 17:26:35
【问题描述】:
我的具有只读属性的多线程应用程序是否需要锁定?由于没有写任何东西,我认为不需要锁,但我想确定一下。这个问题的答案是否与语言无关?
无锁:
Private Const m_strFoo as String = "Foo"
Public ReadOnly Property Foo() As String
Get
return m_strFoo.copy()
End Get
End Property
带锁:
Private Const m_strBar as String = "Bar"
Public ReadOnly Property Bar() As String
Get
SyncLock (me)
return m_strBar.copy()
End Synclock
End Get
End Property
编辑:向字段添加常量
【问题讨论】:
-
您的属性可能是只读的,但数据是吗?如果类本身正在改变数据,您可能需要锁。如果数据从不改变,则不需要锁。
-
我不熟悉你编写的语言,但在我看来,锁定示例永远不会解锁......
标签: multithreading language-agnostic locking