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自体をロックするのが正しいでしょうか?