0

通常代码示例以这种方式使用锁:

static readonly object lockForWorkingWithSharedObject = new object();

lock(lockForWorkingWithSharedObject)
{
   // do something with shared object
}

这样我们就需要在一个大类中使用许多锁。将共享对象本身用作同步对象是一种好习惯吗?

// of course here sharedObject is a reference type
lock(sharedObject)
{
   // do something with sharedObject
}
4

1 回答 1

1

在 Java 和 .NET 中,让每个对象都可锁定正是因为语言设计者认为将对象本身用作锁会很有用。因此也是synchronizedJava中的关键字。

如果您需要更精细的锁定粒度,我会假设您最好将对象的状态拆分为多个对象,按语义上属于一起的事物分组,因此可能还需要同时防止并发访问。

于 2010-12-30T22:32:14.950 回答