JAVA学习历程记录(九)
死锁
多个进程在运行过程中因为争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进
import sun.plugin.BeansViewer;
public class TestDemo {
public static void main(String[] args) {
Object obj = new Object();
Object obj1 = new Object();
new Thread(new B(obj,obj1)).start();
new Thread(new A(obj,obj1)).start();
}
}
class A implements Runnable{
Object obj = new Object();
Object obj1 = new Object();
public A(Object obj,Object obj1){
this.obj = obj;
this.obj1 = obj1;
}
@Override
public void run() {
while (true){
synchronized (obj1){
System.out.println("这是A1");
synchronized (obj){
System.out.println("这是A2");
}
}
}
}
}
class B implements Runnable{
Object obj = new Object();
Object obj1 = new Object();
public B(Object obj,Object obj1){
this.obj = obj;
this.obj1 = obj1;
}
@Override
public void run() {
while (true){
synchronized (obj){
System.out.println("这是B1");
synchronized (obj1