JAVA线程安全与同步机制专题测试
考察知识点
| 知识点模块 | 题目数量 | 题目编号 |
|---|---|---|
| synchronized关键字 | 3道 | Q001-Q003 |
| volatile关键字 | 3道 | Q005-Q007 |
| Lock接口与ReentrantLock | 4道 | Q009-Q012 |
| 原子类Atomic | 2道 | Q013-Q014 |
| 线程安全集合 | 3道 | Q017,Q018,Q020 |
| 同步工具类 | 3道 | Q021,Q022,Q024 |
| 综合对比 | 2道 | Q029-Q030 |
synchronized关键字修饰普通方法时,锁对象是当前实例对象(this);修饰静态方法时,锁对象是当前类的Class对象。
关于Java中synchronized关键字的锁升级过程,以下说法正确的是?
关于synchronized关键字,以下说法正确的有?
volatile关键字可以保证变量的可见性,但不能保证复合操作的原子性。
关于volatile关键字的内存语义,以下说法正确的是?
以下哪些场景适合使用volatile关键字?
ReentrantLock实现了Lock接口,它支持公平锁和非公平锁两种模式,并且是可重入锁。
关于Lock接口的方法,以下说法错误的是?
关于synchronized和ReentrantLock的区别,以下说法正确的有?
ReentrantLock的底层实现依赖于______(AbstractQueuedSynchronizer)框架,它使用一个FIFO队列来管理等待获取锁的线程。
Java中的原子类(如AtomicInteger)通过CAS(Compare-And-Swap)机制实现原子操作,CAS操作不需要加锁就能保证线程安全。
关于CAS操作的ABA问题,以下说法正确的是?
Java 8中的ConcurrentHashMap使用了CAS+synchronized来保证线程安全,放弃了Java 7中的分段锁设计。
关于CopyOnWriteArrayList,以下说法错误的是?
ConcurrentHashMap在Java 8中,当链表长度超过______且数组长度超过64时,会将链表转换为红黑树以提高查询效率。
CountDownLatch是一次性的,计数器减到0后不能重置,而CyclicBarrier可以重置并重复使用。
以下场景中,最适合使用CountDownLatch的是?
关于CountDownLatch、CyclicBarrier和Semaphore,以下说法正确的有?
关于synchronized和volatile的内存语义,以下说法正确的是?
在读多写少的场景下,以下哪种同步机制性能最优?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验