什么是死锁
死锁会让程序一直卡住,无法向下执行
我们只能通过中止并重启的方式来让程序重新执行
造成死锁的原因
当前线程拥有其他线程需要的资源
当前线程等待其他线程已拥有的资源
都不放弃自己拥有的资源
从而陷入无限等待
避免死锁的方法
1.所有线程以固定的顺序来获得锁
2.缩小加锁的范围,仅操作共享变量时才加锁,尽量不要几个功能用同一把锁
3.使用tryLock()定时锁,设置超时时间,超时可以退出防止死锁
什么是死锁
死锁会让程序一直卡住,无法向下执行
我们只能通过中止并重启的方式来让程序重新执行
造成死锁的原因
当前线程拥有其他线程需要的资源
当前线程等待其他线程已拥有的资源
都不放弃自己拥有的资源
从而陷入无限等待
避免死锁的方法
1.所有线程以固定的顺序来获得锁
2.缩小加锁的范围,仅操作共享变量时才加锁,尽量不要几个功能用同一把锁
3.使用tryLock()定时锁,设置超时时间,超时可以退出防止死锁