如何避免Java死锁

造成死锁的几个原因:

1.一个资源每次只能被一个线程调用;

2.一个线程在阻塞等待某个资源时,不释放已占用资源;

3.一个线程在获得资源,未使用完之前不能进行剥夺;

4.若干个线程头尾相连循环等待资源。

这是产生死锁的四个必要条件,所以只要不满足其中一个条件就可以了,

但是作为一个锁必须要满足前三个条件,所以只能打破第四个条件!

你可能感兴趣的:(笔记,java,面试)