代碼如下
class Program
{
static object a = new object();
static object b = new object();
static void Main(string[] args)
{
var t = new Thread(f);
t.IsBackground = false;
var t2 = new Thread(f2);
t2.IsBackground = false;
t.Start();
t2.Start();
}
static void f()
{
lock (a)
{
Thread.Sleep(5000);
lock (b)
{
Console.WriteLine(1);
}
}
}
static void f2()
{
lock (b)
{
lock (a)
{
Console.WriteLine(2);
}
}
}
}
{
static object a = new object();
static object b = new object();
static void Main(string[] args)
{
var t = new Thread(f);
t.IsBackground = false;
var t2 = new Thread(f2);
t2.IsBackground = false;
t.Start();
t2.Start();
}
static void f()
{
lock (a)
{
Thread.Sleep(5000);
lock (b)
{
Console.WriteLine(1);
}
}
}
static void f2()
{
lock (b)
{
lock (a)
{
Console.WriteLine(2);
}
}
}
}
特徵:
兩個工作單元,兩份資源
都想要多方所有的
等吧。。。