tôi đang học đa luồng trong C# và tôi thấy một mã bên dướiNested khóa trong C#
static readonly object _locker = new object();
static void Main()
{
lock (_locker)
{
AnotherMethod();
// ...some work is going on
}
}
static void AnotherMethod()
{
lock (_locker) { Console.WriteLine ("Another method"); }
}
Tôi tự hỏi khi nào nó đòi hỏi phải sử dụng khóa lồng nhau? Tại sao không chỉ sử dụng một khóa trong trường hợp này?
nếu 'AnotherMethod' được sử dụng ở một nơi khác quá (và không chỉ trong' Main') ... – Yahia
Mã này thực sự là không cần thiết. Khóa ngoài (_locker) là không cần thiết. Ngoại trừ nếu AnotherMethod() sẽ được công khai và được sử dụng từ một nơi khác. – Matthias