我应该使用 2 个锁变量还是 1 个就足够了,它会影响性能吗?如果我有 3 或 4 个从多个线程调用的方法怎么办?
public static class Foolocking
{
private static object _syncRoot = new object();
private static List<string> _list1;
private static List<string> _list2;
public Foolocking()
{
_list1 = new List<string>();
_list2 = new List<string>();
}
public void Method1(string s1)
{
lock (_syncRoot)
{
_list1.Add(s1);
}
}
public void Method2(string s2)
{
lock (_syncRoot)
{
_list2.Add(s2);
}
}
}
参考这个,锁定 list1 和 list2 本身是否正确?