死锁:
T线程持有A锁,想要B锁;U线程持有B锁,想要A锁,此时成为死锁,都Blocked住。
定位死锁:
使用Jstack命令或Jconsole界面工具
Jstack:
1.使用jsp获取所有的Java进程ID。
2.使用Jstack 进程ID 查看进程里所有的线程
活锁:
两个线程互相改变对方的线程结束条件,导致两个线程都结束不了,造成活锁现象。
解决活锁:
使两个线程的执行时间有一定的交错,使其都有充分时间执行结束。
饥饿锁:顺序加锁.
T线程持有A锁,想要B锁;U线程持有B锁,想要A锁,此时成为死锁,都Blocked住。
使用Jstack命令或Jconsole界面工具
Jstack:
1.使用jsp获取所有的Java进程ID。
2.使用Jstack 进程ID 查看进程里所有的线程
两个线程互相改变对方的线程结束条件,导致两个线程都结束不了,造成活锁现象。
使两个线程的执行时间有一定的交错,使其都有充分时间执行结束。
饥饿锁:顺序加锁.