gpt4 book ai didi

c# - 需要多个锁对象?

转载 作者:可可西里 更新时间:2023-11-01 08:07:58 31 4
gpt4 key购买 nike

给定以下类:

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() 可以从不同线程同时调用,使用两个锁定对象是否正确,注意 listOnelistTwo 无论如何都不相关。锁中涉及的唯一操作是上面注释中指定的操作。

最佳答案

是的,这是正确的。它避免了仅仅因为另一个列表正在处理而不必要地锁定一个列表。

关于c# - 需要多个锁对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14813780/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com