Учитывая следующий класс:
class x
{
Object lockOne = new Object();
Object lockTwo = new Object();
List<Something> listOne = new List<Something>();
List<Something> listTwo = new List<Something>();
void MethodOne()
{
lock(lockOne)
{
// some operation on listOne
}
}
void MethodTwo()
{
lock(lockTwo)
{
// some operation on listTwo
}
}
}
Правильно ли использовать два объекта блокировки, предполагая, что MethodOne()
и MethodTwo()
можно вызывать из разных потоков одновременно, отмечая, что listOne
и listTwo
не связаны друг с другом. Единственными операциями, связанными с блокировками, являются те, которые указаны в комментариях выше.