volatile

J_bean6 天前
synchronized·volatile·原子性·可见性·有序性·指令重排
阐述 volatile 和 synchronized 的区别以及底层原理重点:不保证原子性i++ 分为三步:读i → +1 → 写回 volatile只能保证读到最新值,不能把三步打包成原子,多线程下依然会出现计数错误。
要开心吖ZSH18 天前
缓存·caffeine·volatile·本地缓存
本地缓存方案选择指南:volatile、ConcurrentHashMap、Caffeine 怎么选?做Java后端开发,缓存这东西迟早要碰。一提到缓存,很多人第一反应就是Redis,但其实有些场景用本地缓存就够了,还省了一次网络IO。今天就聊聊Java里四种常见的本地缓存方案,从最简单的到最强大的,看完你就知道该选哪个了。 Java生态中—分布式缓存 VS 本地缓存
j7~1 个月前
linux·信号处理·volatile·可入重函数·保存信号
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》上一回我们认识了进程信号的基本概念,进程信号的本质等讲解了,这一篇文章,将带领大家继续深入学习进程信号,保存进程信号,信号处理方等知识。
ComputerInBook1 个月前
c语言·c++·volatile·编译器优化
C & C++ 中的关键字 volatile 之详解目录1. volatile 本身的含义2. volatile 在计算机领域中的含义3. volatile 在C和C++ 中的含义
折哥的程序人生 · 物流技术专研2 个月前
java·volatile·内存屏障·可见性·java内存模型·jmm·java100天进阶
《Java 100 天进阶之路》第53篇:volatile与JMM(2026版)📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第52篇:synchronized深度解析 | ➡️ 下一篇:第54篇:AQS抽象队列同步器(待发布)
rebibabo2 个月前
java·学习笔记·volatile·可见性·有序性·指令重排
Java高并发底层原理(七)volatile 到底解决了什么问题缓存一致性协议能够协调多个 CPU Core 对同一条 Cache Line 的读写,但 Java 程序仍然需要明确一件事:一个线程修改变量以后,另一个线程什么时候必须看到这个修改?
fengxin_rou3 个月前
架构·事务·cas·juc·volatile
【JUC第二章下】:锁机制&关键字🔥你好我是fengxin_rou这是我的个人主页fengxin_rou的主页❄️欢迎查看我的专栏我的专栏
月落归舟3 个月前
java·开发语言·volatile
并发编程之volatile深度解析(二)在上一篇文章中讲到了并发编程的整体知识梳理,这篇文章让我们来看看volatile在并发编程中的使用CPU 缓存有 4 种状态:M (修改)、E (独占)、S (共享)、I (失效)。
Irissgwe3 个月前
linux·进程·可重入函数·volatile·sigchld信号·进程信号
九、Linux信号机制(二)main函数调用insert函数向一个链表head中插入节点node1,插入操作分为两步:刚做完第一步的 时候,因为硬件中断使进程切换到内核,再次回用户态之前检查到有信号待处理,于是切换 到 sighandler函数,sighandler也调用insert函数向同一个链表head中插入节点node2,
Peter·Pan爱编程3 个月前
c++·const·volatile·c++基础
C++中的 const 与 volatile:比C强大十倍本系列为《C++深度修炼:基础、STL源码与多线程实战》第8篇 前置条件:理解 C 语言的 const 基本用法,了解 C++ 类与成员函数(第2篇、第4篇)
devpotato4 个月前
多线程·volatile·可见性·java内存模型
深入剖析Java内存模型与volatile关键字计算机在运行程序时,每条指令都是在CPU中执行的,在执行过程中会涉及到数据的读写。我们知道程序运行的数据是存储在主存中,这时就会有一个问题,读写主存中的数据没有 CPU 中执行指令的速度快,如果任何的交互都需要与主存打交道则会大大降低效率,所以就有了 CPU寄存器、各级缓存、主存构成了一个速度与容量的平衡金字塔。
无小道4 个月前
volatile
C++——volatile正常情况下当发送信号时,程序就会结束,但如果在编译时加入优化选项如-O1,-O2...就不会退出。但是因为flag的修改是在信号处理函数中修改的而不是main函数,编译器判定flag在循环中没有被修改,因此做出了优化,每次判断!flag时不再把flag从内存中读取到cpu寄存器进行判断,而是直接编译指令为:读取寄存器原来的值进行判断。
庞轩px4 个月前
缓存·线程·cpu·volatile·可见性·本地内存
线程本地缓存?CPU缓存!在Java并发编程的学习中,几乎每个人都会遇到这样的描述:“每个线程有自己的本地内存,线程对共享变量的操作在本地内存中进行,而不是直接在主内存中。”
星原望野5 个月前
java·开发语言·volatile
java:volatile关键字的作用在java的高并发编程中,每一个线程都会为其开辟其独自的本地内存,不对其它线程共享。该线程的本地内存放有从主内存读取的变量,后续该线程对变量的操作就只会在该线程的本地内存进行,不会对主内存的变量造成影响。
一叶飘零_sweeeet5 个月前
单例模式·volatile
volatile 关键字深度拆解:从内存屏障底层到单例模式的工业级架构设计在Java并发编程中,volatile是最基础也最容易被误解的关键字。很多开发者只知道它能解决多线程的可见性问题,却对它的禁止指令重排序语义一知半解,甚至在双重检查锁单例中盲目使用,最终埋下线上空指针、数据错乱的隐患。本文将从Java内存模型的底层原理出发,一步步拆解volatile的核心语义,用通俗的语言讲透内存屏障的实现机制,再结合单例模式的架构演进,手把手教你写出工业级的线程安全单例,同时梳理常见误区与最佳实践,让你彻底吃透volatile关键字。
时光の尘5 个月前
c语言·const·static·union·volatile·struct·enum
嵌入式面试八股文(二十)·C语言关键字相关知识点速通(static、const、volatile、struct、enum、union)目录1. 解释 C 语言中的 static 关键字的作用2. const 关键字在 C 语言中如何使用
_OP_CHEN6 个月前
linux·运维·进程·c/c++·信号·可重入函数·volatile
【Linux系统编程】(三十八)进程信号拓展:可重入函数 /volatile/SIGCHLD 全解析前言一、可重入函数:信号处理的第一大 “坑”1.1 什么是重入?什么是可重入函数?1.1.1 重入的定义
MR_Promethus6 个月前
开发语言·c++·volatile
【C++11】volatile 关键字
C雨后彩虹7 个月前
java·多线程·并发·volatile
volatile 实战应用篇 —— 典型场景在上一篇文章中,我们深入剖析了 volatile 的底层原理,知道它通过强化 JMM 交互规则保证可见性,通过插入内存屏障保证有序性,但不具备原子性。
小毅&Nora7 个月前
java·多线程·volatile
【Java线程安全实战】⑬ volatile的奥秘:从“共享冰箱“到内存可见性的终极解析在之前的系列文章中,我们已经深入探讨了线程安全的各种工具和机制:在掌握了Exchanger的高级用法后,我们将在本篇文章中深入探讨volatile关键字。我们将从内存可见性、指令重排序等角度,通过生动的示例,揭示volatile如何在多线程环境中确保数据的一致性。同时,我们还会分析volatile与synchronized的区别,以及在实际开发中如何正确使用volatile。