产生死锁的四个条件
请求保持(在获取其他资源之前,不会释放自己占有的资源)、循环等待(线程1在等待资源B的同时线程2在等待资源A)、不可抢占(线程1不可抢占线程2占有的资源A),互斥(资源A或者资源B都同一时间只能被一个线程获取)
如何解决 MySQL的死锁
1.使用jstack命令导出线程的dump日志
2.从日志里面定位到具体死锁的程序代码
3.修改代码去破坏这四个条件里面的任意一个,就可以解决死锁问题(互斥条件不可修改)
请求保持(在获取其他资源之前,不会释放自己占有的资源)、循环等待(线程1在等待资源B的同时线程2在等待资源A)、不可抢占(线程1不可抢占线程2占有的资源A),互斥(资源A或者资源B都同一时间只能被一个线程获取)
1.使用jstack命令导出线程的dump日志
2.从日志里面定位到具体死锁的程序代码
3.修改代码去破坏这四个条件里面的任意一个,就可以解决死锁问题(互斥条件不可修改)