之前的理解死鎖出錯了,原來有兩個方法。當第一個方法被第一個線程訪問的時候,第一個鎖對象就被占有了,第二個線程去訪問方法二,第二個鎖對象就被線程二占有了。此時第一個線程訪問第一個方法內部的同步塊的時候,要獲取第二個鎖對象,可此時第二個對象被線程2占有了,線程1也就無法獲取到第二個鎖對象,而線程2也要訪問第二個方法內部的同步塊需要獲取鎖對象1,而此時鎖對象1被線程1占有,所以,此時兩個線程都無法繼續下去,就一直耗著,造成死鎖。這是我復盤的時候檢測出的問題,希望大家在學習的時候多看實例,避免出錯
2019-01-12
這個視頻我看了2遍了,我確信我都弄懂了知識,首先非常感謝悟空大大,但是我覺得你這個第6種情況的實例不妥,因為您測試的是多線程的靜態鎖方法和非靜態鎖方法,而您這個地方用的是一個對象測試的,體現不出來多線程訪問靜態鎖方法和非靜態鎖方法的不同之處,我覺得應該用兩個對象來測試,我寫了一段代碼來測試,不論是否合理,這都是我的想法,請悟空大大評價,我都會采納建議
2019-01-09