- 博客(3)
- 收藏
- 关注
原创 Java面试题 3.我们知道 ArrayList 是线程不安全,请编写一个不安全的案例并给出解决方案?
我们知道 ArrayList 是线程不安全,请编写一个不安全的案例并给出解决方案? 首先这个问题我们要搞清一个问题? ArrayList 为什么是线程不安全? 根据问题给出解决方案 首先需要了解什么是线程安全:线程安全就是说多线程访问同一代码(对象、变量等),不会产生不确定的结果。 ArrayList线程不安全的原因是,ArrayList为了并发性和效率,在add的方法里没有加锁。 在多线程的情况下会报 java.util.ConcurrentModificationException并发修改异常。 解决方
2021-01-25 00:38:10 104 3
原创 Java面试题 2.CAS 你知道吗?CAS 底层原理?谈谈对 UnSafe 的理解?
CAS 你知道吗?CAS 底层原理?谈谈对 UnSafe 的理解? AtomicInteger CAS–> Unsafe -->CAS底层思想 —》ABA --》原子引用更新 --》 如何规避ABA问题 CAS翻译过来就是,compare and set,比较并交换,上节课里面说用atomicInteger可以解决volatile的不保证原子性的问题,那么为什么它可以解决这个问题呢? 首先atomicUnteger是调用了compare and set的方法,compare and set方法相
2021-01-20 21:34:16 339
原创 Java面试题 1.请谈谈你对 volatile 的理解
Java面试题 并发编程 1.请谈谈你对 volatile 的理解 volatile 是 Java 虚拟机提供的轻量级的同步机制 保证可见性 禁止指令排序 不保证原子性 JMM(Java 内存模型) [ 1 ] JMM本身是一种抽象的概念并不是真实存在的,它描述的是一组规定或者规范,通过这种规范定义了程序的访问方式。 [ 2 ] JMM同步规定 [a ]线程解锁前,必须把共享变量的值刷回主内存 [b]线程解锁前,必须读取主内存的最新值到自己的工作内存 [c]加锁和解锁是同一把锁 [ 3 ]由于JVM运行
2021-01-18 19:29:11 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人