线程的死锁学习

死锁概念:

某一个同步块,同时拥有两个以上对象的锁时,就有可能发生死锁现象

代码演示

结果

 

 解决方法:

将另一个的synchronized代码块,移出去

 

形成死锁的四个条件 

1.互斥条件:一个资源一次只能被一个线程使用

2.请求与保持条件:一个线程因请求资源而造成阻塞时,并不释放资源

3.不剥夺条件:进程已经获得的资源,在未使用完前,不可剥夺

4.循环等待条件:若干进程之间形成头尾相连的循环等待资源

打破死锁的方法:我们只需打破上面的任意一个或多个条件,那么就无法形成死锁

おすすめ

転載: blog.csdn.net/qq_47499256/article/details/121431422