[問題]lock scope中又有lock 為啥不會deadlock?

看板C_Sharp (C#)作者 (我愛阿蓉)時間14年前 (2011/08/02 22:47), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
標題不太好懂@@ 請大家看一下以下的sample code public class Fooo { static object oo = new object(); static public void Get() { lock (oo) { Console.WriteLine("Hi"); Orz(); Console.WriteLine("all"); } } static void Orz() { lock (oo) { } } } class Program { static void Main(string[] args) { Fooo.Get(); } } 今天突然想到 我這樣好像怪怪的 我以為會deadlock 因為get那邊已經進去 lock的scope了 可是Orz那塊又在去lock一次 我以為他會卡死在第二個lock區塊遲遲進不去 誰知道順利的印完了.... 觀念整個錯誤~~ 可否請教各位給予指證 想了一下是不是因為我現在只有一條thread再跑 不會被擋 所以想問 如果多個thread 這種code會不會有風險 謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 188.223.83.48 ※ 編輯: QQ29 來自: 188.223.83.48 (08/02 22:53)

08/04 13:56, , 1F
http://ppt.cc/tlnN 這篇有提到
08/04 13:56, 1F
文章代碼(AID): #1EE0u6dH (C_Sharp)
文章代碼(AID): #1EE0u6dH (C_Sharp)