Che*_*tah 2 c# multithreading synchronization locking
我看到了很多:
object lockObj;
List<string> myStrs;
// ...
lock(lockObj)
{
myStrs.Add("hello world");
}
Run Code Online (Sandbox Code Playgroud)
为什么要有单独的对象?当然你可以这样做:
List<string> myStrs;
// ...
lock(myStrs)
{
myStrs.Add("hello world");
}
Run Code Online (Sandbox Code Playgroud)
仅在myStrs公共时才直接锁定列表是一个问题,因此也可以被其他调用者锁定,从而导致可能的死锁.
如果它是一个私人成员,那么应该没有问题,但object在任何情况下锁定一个单独的是一个好习惯.
有关更详细的答案,请参阅此类似问题: 为什么锁定(此){...}不好?
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |