2010-09-07 74 views
1

如果我有兩個Synclocks.NET的SyncLock爲了僵局

synclock a 
    synclock b 
    end synclock 
end synclock 

我在陷入僵局的危險,如果我從來沒有

synclock b 
    synclock a 
    end synclock 
end synclock 

在我的代碼,但我做的SyncLock上a或b隨機?

回答

3

只要你總是鎖定一個b之前,那麼你會沒事的。

+0

true,但我想知道的是,如果a始終被鎖定在函數1中,並且b始終被鎖定在函數2中,並且synclock a,b在函數3中並且每個函數都在不同的線程上運行,還行嗎? – 2010-09-07 18:59:10

+0

難以察覺的情況是隻鎖定b的代碼,然後在鎖定a的深層嵌套代碼中跳出。 – 2010-09-07 19:01:35