自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 面试题:volatile 可以保证原子性么?

尽管 `count` 被声明为 `volatile`,可以保证一个线程对 `count` 的修改对其他线程是可见的,但是递增操作 `count++` 并不是原子的。在这个例子中,尽管 `count` 被声明为 `volatile`,但并不能保证递增操作的原子性,从而导致了一个线程的递增操作可能被另一个线程的递增操作所覆盖,最终导致计数器的值小于期望的值。要解决这种情况,可以使用 `synchronized` 关键字或 `AtomicInteger` 等原子类,以确保递增操作的原子性。

2023-12-06 16:07:20 288 1

原创 面试题:单例模式了解吗?来给我手写一下!给我解释一下双重检验锁方式实现单例模式的原理呗!

在某些情况下,JVM 可能会对指令进行重排序,导致在同步块外的线程获取到一个尚未初始化完成的实例。3. **第二次检验(内部 if 语句):** 在同步块内,再次检验实例是否为 null。2. **同步块(synchronized):** 如果实例不存在(即第一次检验失败),则进入同步块。1. **第一次检验(外部 if 语句):** 如果实例已经存在,直接返回该实例。4. **实例创建:** 如果在同步块内检验发现实例仍然为 null,那么创建一个新的实例。**双重检验锁方式的实现原理:**

2023-12-06 15:55:30 84 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除