死锁问题
死锁检测
jps -l // 列出所有java线程
jstack -l xxxx // 查看要检测线程的堆栈信息
JConsole 图形化界面检测死锁
jvisualvm //图形化监控界面,可以直接看出死锁
死锁避免
- 避免一个线程同时获取多个锁
- 避免一个线程在锁内占用多个资源
- 定时锁 定时释放锁
参考博客
参考博文2
线程顺序执行问题
多个线程顺序执行,可以让一个执行完了再执行另一个用join即可解决;也可以用加锁和求余的方式实现(但是有时候能出来有时候出不来);
多线程顺序交替执行:求余wait notify 循环来实现
参考博文