死鎖

代碼如下
 
 
        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);
                                }
                        }
                }
        }
 
特徵:
兩個工作單元,兩份資源
都想要多方所有的
 
等吧。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章