什么是死锁?如何分析死锁和避免死锁?
死锁就是在多线程运行时,线程对象在获取操作资源时,操作资源被其他线程对象占用而获取不到,导致线程运行阻塞
首先用jsp命令查看当前进程pid是否发生死锁,然后利用可视化工具Jvisualvm查看当前进程的各个线程运行状态(颜色),
通过Jvisualvm的线程dump或jstack命令,把当前进程的所有线程的堆栈信息打印出来,然后分析主线程和子线程有没有
waiting for,waiting to lock等关键短语,最后利用线程函数调用栈定位到源码上,再具体问题具体分析
要想避免死锁,在多线程条件下,保证每个线程加锁和解锁的顺序一致