Object类对象
只有一个,一个方法锁住了,另一个就要阻塞。
A方法锁住了,B方法肯定阻塞,等到A方法释放锁,B方法获取锁以后才能执行。
下面的代码是顺序执行的。
public static void main(String[] args) {
new Thread(No26_removeDuplicates::A).start();
new Thread(No26_removeDuplicates::B).start();
}
public static void A() {
synchronized (Object.class) {
System.out.println("A start");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("A end");
}
}
public static void B() {
synchronized (Object.class) {
System.out.println("B start");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("B end");
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…