根據線程安全的相關知識,分析一下代碼,當調用test方法時i>10時是否會引起死鎖?并簡單說明理由
public void test(int i)
{
lock (this)
{
if (i > 0)
{
i--;
test(i);
}
}
}
(有知道的給說下,謝謝)
2 回答

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
你的問題描述的不夠清楚,但是我可以告訴你這段代碼不會出現死鎖。
原因:只會出現資源竟用的問題,你lock(this){}對于單個線程(如A1)是可以重入的,即進入的線程A1可以無限調用lock(this){}。但是因為lock資源獨占的問題,所以在A1沒有完全退出lock(this){}塊之前別的線程是無法進入lock(this){}臨界區的
- 2 回答
- 0 關注
- 254 瀏覽
添加回答
舉報
0/150
提交
取消