重入鎖
Condition
讀寫鎖
適用于讀多寫少
場景
死鎖
final Object lockA = new Object();
final Object lockB = new Object();
new Thread() {
@Override
public void run() {
synchronized (lockB) {
System.out.println("獲取鎖B");
try {
sleep(3000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (lockA) {
System.out.print("t1");
}
}
}
}.start();
new Thread() {
@Override
public void run() {
synchronized (lockA) {
System.out.println("獲取鎖A");
try {
sleep(3000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (lockB) {
System.out.print("t2");
}
}
}
}.start();