public class DeadLock {
static StringBuffer sb1 = new StringBuffer();
static StringBuffer sb2 = new StringBuffer();
public static void main(String[] args) {
new Thread(()->{
synchronized(sb1){
sb1.append("A");
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(sb2){
sb2.append("B");
System.out.println(sb1.toString());
System.out.println(sb2.toString());
}
}
}).start();
new Thread(()->{
synchronized(sb2){
sb1.append("C");
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(sb1){
sb2.append("D");
System.out.println(sb1.toString());
System.out.println(sb2.toString());
}
}
}).start();
}
}