Java JUC并发编程
返回章节
课程目录
🔐 第5章测试:Lock接口
测试你对Lock接口、ReentrantLock、公平锁等概念的理解
10道题目
建议时间:15分钟
满分:100分
1
单选题
Lock接口相比synchronized关键字的主要优势是什么?
A. 性能更好
B. 支持可中断锁获取
C. 使用更简单
D. 占用内存更少
2
单选题
以下哪个方法可以实现非阻塞的锁获取?
A. lock()
B. lockInterruptibly()
C. tryLock()
D. unlock()
3
判断题
ReentrantLock默认是公平锁。
正确
错误
4
多选题
Lock接口提供了哪些锁获取方式?(多选)
A. 阻塞式锁获取
B. 可中断锁获取
C. 超时锁获取
D. 非阻塞锁获取
5
单选题
以下代码中,正确的Lock使用方式是?
A.
lock.lock(); try { // 业务代码 } finally { lock.unlock(); }
B.
try { lock.lock(); // 业务代码 } finally { lock.unlock(); }
C.
lock.lock(); // 业务代码 lock.unlock();
D.
try { lock.lock(); // 业务代码 lock.unlock(); } catch (Exception e) { // 处理异常 }
6
单选题
公平锁和非公平锁的主要区别是什么?
A. 公平锁性能更好
B. 公平锁按照请求顺序分配锁
C. 非公平锁不会发生死锁
D. 公平锁占用内存更少
7
判断题
使用tryLock()方法可以有效避免死锁。
正确
错误
8
单选题
ReentrantLock的"可重入"特性是指什么?
A. 可以被多个线程同时获取
B. 同一线程可以多次获取同一把锁
C. 锁可以被重复使用
D. 锁可以自动释放
9
单选题
在什么情况下应该优先选择Lock而不是synchronized?
A. 简单的同步场景
B. 需要可中断锁获取的场景
C. 低竞争的场景
D. 所有场景都应该用Lock
10
多选题
以下哪些是使用Lock的最佳实践?(多选)
A. 总是在finally块中释放锁
B. 使用tryLock()设置超时时间
C. 按固定顺序获取多个锁
D. 尽量减少锁的持有时间
提交答案
0分
你的得分