🔒 第3章测试:synchronized关键字

测试你对synchronized同步机制的理解程度

1
synchronized的基本原理
关于synchronized的工作原理,以下说法正确的是:
2
对象锁和类锁的区别
以下代码中,哪些方法使用的是同一把锁?
public class SyncExample { public synchronized void method1() { } public static synchronized void method2() { } public void method3() { synchronized(this) { } } public void method4() { synchronized(SyncExample.class) { } } }
3
锁升级机制
关于synchronized的锁升级机制,正确的升级顺序是:
4
死锁分析
以下代码是否可能发生死锁?
Object lock1 = new Object(); Object lock2 = new Object(); Thread t1 = new Thread(() -> { synchronized(lock1) { synchronized(lock2) { // 业务逻辑 } } }); Thread t2 = new Thread(() -> { synchronized(lock2) { synchronized(lock1) { // 业务逻辑 } } });
5
性能优化
为了提高synchronized的性能,以下哪种做法是正确的?