namespace deadlockincsharp
static readonly object firstLock = new object();
static readonly object secondLock = new object();
Console.WriteLine("\t\t\t\tLocking firstLock");
Console.WriteLine("\t\t\t\tLocked firstLock");
Console.WriteLine("\t\t\t\tLocking secondLock");
Console.WriteLine("\t\t\t\tLocked secondLock");
Console.WriteLine("\t\t\t\tReleased secondLock");
Console.WriteLine("\t\t\t\tReleased firstLock");
public static void Main()
new Thread(new ThreadStart(ThreadJob)).Start();
Console.WriteLine("Locking secondLock");
Console.WriteLine("Locked secondLock");
Console.WriteLine("Locking firstLock");
Console.WriteLine("Locked firstLock");
Console.WriteLine("Released firstLock");
Console.WriteLine("Released secondLock");