
面试百科
文章平均质量分 72
以少量的文字介绍面试过程中的相关问题,主要是八股文,每篇博文都不会太长。
Miaow.Y.Hu
欲买桂花同载酒,终不似,少年游。
展开
-
CAS 你知道吗?CAS 底层原理?谈谈对 UnSafe 的理解?
CAS(Compare and Swap) **是JUC中的并发编程中常用的原子操作,它用于实现多线程环境下的无锁同步**,CAS操作包含三个操作数 : 内存位置(或称为变量的地址)、期望值和新值。CAS的执行过程如下:1. 读取内存位置的当前值,也就是我们的期望值。2. 比较期望值与内存位置的当前值是否相等。3. 如果相等,将新值写入内存位置;如果不相等,则说明其他线程已经修改了内存位置的值,CAS操作失败。4. CAS操作返回当前内存位置的值。原创 2024-04-29 17:28:32 · 525 阅读 · 0 评论 -
原子类 AtomicInteger 的 ABA 问题谈一谈?原子更新引用知道吗?
当谈到原子类AtomicInteger的ABA问题时,它涉及到在并发环境下对共享变量进行原子操作时可能出现的一个特定情况。ABA问题的场景如下:初始时,一个线程T1读取了一个共享变量的值为A。然后,另一个线程T2将该共享变量的值从A修改为B,再修改回A。最后,线程T1再次读取该共享变量的值,发现仍然是A,导致线程T1无法察觉到中间的修改过程。原创 2024-04-29 16:22:05 · 337 阅读 · 0 评论 -
volatile的相关知识点
- C++中的Volatile主要用于硬件相关的操作,而Java中的Volatile主要用于解决多线程环境下的变量可见性问题。- C++中的Volatile只能保证单个变量的原子性,而Java中的Volatile可以保证变量的可见性和有序性。- C++中的Volatile不能保证原子操作,需要使用其他同步机制来实现,而Java中的Volatile可以保证某些简单的原子操作,比如自增、自减等。原创 2024-04-28 17:59:05 · 805 阅读 · 0 评论