ES2016_14353285 涂佳灵
一、死锁停在第几次的截图
二、产生死锁的四个条件
1、互斥条件:一个资源每次只能被一个进程使用
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
3、不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
三、产生死锁的原因
在主线程中,a要调用methodA这个函数,需要参数b。在子线程中,b要调用methodB这个函数,需要参数a。当
synchronized void methodA(B b){
b.last();
}
和
synchronized void methodB(A a){
a.last();
}
同时执行时,会进入忙等待,被阻塞。
即当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其他synchronized(this)同步代码块的访问将被阻塞。