📄 deadlockrisk.java
字号:
package jawt;
public class DeadlockRisk {
private static class Resource{
public int value;
}
private Resource resourceA=new Resource();
private Resource resourceB=new Resource();
public int read(){
synchronized(resourceA){//may deadlock here
System.out.println("===========");
synchronized(resourceB){
System.out.println(">>>>>>>>>>");
return resourceB.value+resourceA.value;
}
}
}
public void write(int a,int b){
synchronized(resourceB){//may deadlock here
System.out.println("++++++++++");
synchronized(resourceA){
System.out.println("-----------");
resourceA.value=a;
resourceB.value=b;
}
}
}
class ThreadRW implements Runnable {
public void run(){
while (resourceA.value!=0&&resourceB.value!=0){
int r=read();
}
}
}
public static void main(String[] args){
DeadlockRisk risk=new DeadlockRisk();
risk.write(5, 6);
int m=risk.read();
System.out.println(m);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -