我查看過周圍SO和網絡的答案,但只發現一個爲其他語言(C + +,蟒蛇)和閱讀沒有提供足夠明確的答案。鎖定狀態,如果線程死亡
如果一個線程有一個被鎖定的代碼塊,並且線程因爲某種原因(被強行殺死)而處於鎖定塊內部,那麼該鎖仍然會被強制執行(即其他線程不會能夠使用獲得該鎖)?
如:
class myClass {
private static object myLock = new Object();
public void foobar()
{
lock(myLock)
{
//code
}
}
}
如果線程A死了,線程B試圖調用foobar的,將它能夠?還是會陷入僵局?
「我查看過周圍和網絡上的答案」 - 嘗試在您最喜愛的搜索引擎中查找「c#鎖定例外」。 – Dennis
已編輯。我不相信這是重複的。我已經移除了異常部分,並且對線程本身在鎖中死亡時發生的情況更感興趣,而沒有發生異常。如果線程被殺死了,鎖定會被釋放嗎? –