public void Test2() { var num = new TestLockNum(); num.Num = 5; RecursionLock2(num); }
private void RecursionLock2(TestLockNum num) { if (num.Num < 3) { return; } lock (_lock) { Console.WriteLine($"序号:{num.Num},线程ID:{Thread.CurrentThread.ManagedThreadId},开始"); Thread.Sleep(2000); RecursionLock(--num.Num); Console.WriteLine($"序号:{num.Num},线程ID:{Thread.CurrentThread.ManagedThreadId},结束"); } }