该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:synchronized、volatile、CAS 的比较
synchronized
、volatile
和 CAS
(Compare-And-Swap)是Java中用于保证线程安全和数据一致性的三种不同的机制。
总结:
- synchronized用于实现对共享资源的独占访问,确保线程安全;
- volatile用于声明变量,保证多个线程之间对变量的可见性;
- CAS是一种原子操作,确保对共享变量的原子性操作。
1. synchronized
- 用途:主要用于同步块或方法,防止多个线程同时访问共享资源。
- 原理:通过对象内部的锁状态来实现,可以重入,但阻塞式的,可能导致线程等待。
- 特点:简单易用,但可能造成性能开销,因为它会阻塞没有获取到锁的线程。
- 示例:
public class