- 博客(3)
- 收藏
- 关注
原创 Java面试题 3.我们知道 ArrayList 是线程不安全,请编写一个不安全的案例并给出解决方案?
我们知道 ArrayList 是线程不安全,请编写一个不安全的案例并给出解决方案?首先这个问题我们要搞清一个问题?ArrayList 为什么是线程不安全?根据问题给出解决方案首先需要了解什么是线程安全:线程安全就是说多线程访问同一代码(对象、变量等),不会产生不确定的结果。 ArrayList线程不安全的原因是,ArrayList为了并发性和效率,在add的方法里没有加锁。在多线程的情况下会报 java.util.ConcurrentModificationException并发修改异常。解决方
2021-01-25 00:38:10 168 3
原创 Java面试题 2.CAS 你知道吗?CAS 底层原理?谈谈对 UnSafe 的理解?
CAS 你知道吗?CAS 底层原理?谈谈对 UnSafe 的理解?AtomicIntegerCAS–> Unsafe -->CAS底层思想 —》ABA --》原子引用更新 --》 如何规避ABA问题CAS翻译过来就是,compare and set,比较并交换,上节课里面说用atomicInteger可以解决volatile的不保证原子性的问题,那么为什么它可以解决这个问题呢?首先atomicUnteger是调用了compare and set的方法,compare and set方法相
2021-01-20 21:34:16 398
原创 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 163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人