之前的理解死锁出错了,原来有两个方法。当第一个方法被第一个线程访问的时候,第一个锁对象就被占有了,第二个线程去访问方法二,第二个锁对象就被线程二占有了。此时第一个线程访问第一个方法内部的同步块的时候,要获取第二个锁对象,可此时第二个对象被线程2占有了,线程1也就无法获取到第二个锁对象,而线程2也要访问第二个方法内部的同步块需要获取锁对象1,而此时锁对象1被线程1占有,所以,此时两个线程都无法继续下去,就一直耗着,造成死锁。这是我复盘的时候检测出的问题,希望大家在学习的时候多看实例,避免出错
2019-01-12
这个视频我看了2遍了,我确信我都弄懂了知识,首先非常感谢悟空大大,但是我觉得你这个第6种情况的实例不妥,因为您测试的是多线程的静态锁方法和非静态锁方法,而您这个地方用的是一个对象测试的,体现不出来多线程访问静态锁方法和非静态锁方法的不同之处,我觉得应该用两个对象来测试,我写了一段代码来测试,不论是否合理,这都是我的想法,请悟空大大评价,我都会采纳建议
2019-01-09