senpost
4/20/2011 - 2:59 PM

deadlock : A deadlock happens when two threads each wait for a resource held by the other, so neither can proceed.

deadlock : A deadlock happens when two threads each wait for a resource held by the other, so neither can proceed.

//A deadlock happens when two threads each wait for a resource held by the other, so neither can proceed.

object locker1 = new object();
object locker2 = new object();
 
new Thread (() => {
                    lock (locker1)
                    {
                      Thread.Sleep (1000);
                      lock (locker2);      // Deadlock
                    }
                  }).Start();
lock (locker2)
{
  Thread.Sleep (1000);
  lock (locker1);                          // Deadlock
}