news 2026/8/7 19:33:35

AtomicBoolean 作用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AtomicBoolean 作用

AtomicBoolean是 Java 并发包 (java.util.concurrent.atomic) 里的一个“线程安全布尔”。
一句话:它就是一个可以安全地被多线程同时读/写的布尔值,而且比直接用synchronizedvolatile自己加锁更轻量、更快。


为什么需要它
普通boolean在多线程下出现“写-读”竞争时,读线程可能永远看不到写线程的改动(因为 CPU 缓存、指令重排)。
volatile boolean能解决“可见性”,但做不到“原子复合操作”(例如“检查再改”)。
AtomicBoolean把“可见性 + 原子性”都做了,还提供了一组 CAS(Compare-And-Set)原子操作,不用自己加锁。


常用 API(就这几个)

java

复制

AtomicBoolean flag = new AtomicBoolean(true); flag.get(); // 读 flag.set(false); // 写 flag.compareAndSet(true, false); // CAS:期望值= true 时才改成 false,成功返回 true flag.getAndSet(false); // 先返回旧值,再设新值,原子完成 flag.lazySet(false); // 比 set 更弱一致性的写,单线程自增场景偶尔用

在前面的 JavaFX 场景里用它干嘛
只是想做一个“人工输入” 标志位,防止监听器把代码里setText当成用户输入再触发一次逻辑。
因为界面更新始终发生在 JavaFX Application Thread,单线程,用volatile boolean其实也行;但AtomicBoolean语义更清晰、线程安全习惯写法,拷贝到别的多线程代码里也不会出错。


一句话总结
AtomicBoolean= “线程安全的布尔开关”,提供原子读-改-写操作,不用自己synchronized

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 2:02:49

MATLAB稀疏学习工具箱:sll_opts函数详解与选项配置指南

在进行稀疏学习、L1/L2正则化回归、Lasso、弹性网等优化任务时,一个良好的参数配置机制是算法稳定性和易用性的关键。sll_opts 函数正是为此而生——它是一个专为稀疏学习库(Sparse Learning Library)设计的选项初始化与校验工具,能够统一处理各种求解器(如LeastR、LeastC…

作者头像 李华
网站建设 2026/7/30 11:18:38

MATLAB实现各向同性哈希(Isotropic Hashing)学习算法详解

各向同性哈希(Isotropic Hashing)学习算法在MATLAB中的实现与解析 在信息检索、图像检索和近邻搜索等领域,哈希学习是一种非常高效的近似最近邻搜索技术。它通过将高维数据映射到低维汉明空间,在保持原始数据相似性的同时大幅降低存储和计算开销。各向同性哈希(Isotropic…

作者头像 李华
网站建设 2026/7/30 13:33:54

无监督核谱回归(UKSR)模型训练实现与详解

无监督核谱回归(UKSR)模型训练实现与详解 在无监督降维领域,谱回归(Spectral Regression, SR)是一种高效且优雅的框架,它将传统的谱方法(如Laplacian Eigenmaps)转化为一系列回归问题,从而显著提升计算效率。而当数据分布较为复杂、线性不可分时,将谱回归扩展到核空…

作者头像 李华
网站建设 2026/7/30 9:32:20

华能国际(600011)公司2025-2035年长期投资价值研究报估值行业供应价值链到市场终端的全链路价值点剖析:融合巴菲特价值投资理念与索罗斯市场自强化理论深度解构

华能国际(600011)公司2025-2035年长期投资价值研究报告 关键词:电力转型、碳中和、价值重估、市场反身性、戴维斯双击、安全边际、新能源协同、政策敏感性、产能置换、现金流折现 摘要:华能国际作为中国最大的综合能源集团,在"双碳"战略背景下正经历从传统火电向…

作者头像 李华
网站建设 2026/8/6 0:26:49

Python代码示例:快速筛选偶数并求均值

请提供具体的编程语言和代码功能要求,以便生成符合需求的代码示例。例如:编程语言:Python代码要求:实现快速排序算法或编程语言:JavaScript代码要求:从API获取数据并解析JSON提供详细信息后,将生…

作者头像 李华