threaddeadlockdemo1.java

来自「JAVA的一些基础教程」· Java 代码 · 共 48 行

JAVA
48
字号
public class ThreadDeadLockDemo1
{	Object a = new Object();
	Object b = new Object();
	public void 函数A()
	{	
		synchronized(a){ 
			System.out.println("已经获取对象A的锁,要获取对象B的锁");
			    try{	
				Thread.currentThread().sleep(5000);	
			}catch(Exception e){}
			synchronized(b){
					System.out.println("执行函数A");
			}
		}
	}
	public void 函数B()
	{	
		synchronized(a){ 
			System.out.println("已经获取对象A的锁,要获取对象B的锁");
			try{	
				Thread.currentThread().sleep(5000);	
			}catch(Exception e){}
			synchronized(b)	{
				System.out.println("执行函数B");	
			}
		}
	}
	public void 演示()
	{	Runnable r1 = new Runnable(){
			public void run(){ 
				函数A();
			}	
		};
		Runnable r2 = new Runnable(){
			public void run(){ 
				函数B();
			}	
		};
		Thread t1 = new Thread(r1);
		Thread t2 = new Thread(r2);
		t1.start();
		t2.start();
	}
	public static void main(String arg[]){
		ThreadDeadLockDemo1 td = new ThreadDeadLockDemo1();
		td.演示();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?