news 2026/3/21 23:08:36

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/3/21 3:10:38

谱回归判别分析(SRDA)降维测试函数详解

谱回归判别分析(SRDA)不仅可以作为高效的分类器,还能作为强大的线性降维工具使用。它通过求解正则化回归问题得到判别投影矩阵,将高维数据映射到低维子空间中,通常降到类别数c-1维,最大化类间分离的同时压缩类内差异。在实际应用中,我们常常需要对新数据(测试集或未标记…

作者头像 李华
网站建设 2026/3/14 4:52:15

制码指南:轻松生成文本二维码和文件二维码

对于想要生成二维码的用户来说,了解基本步骤至关重要。生成二维码的过程并不复杂,您只需: 选择工具:通常可以在网络上找到多种免费的二维码生成工具。输入内容:无论是上传文件还是输入文本,确保信息准确无…

作者头像 李华
网站建设 2026/3/20 13:05:26

SHAREit 茄子快传下载 无网极速传输神器 安卓跨平台文件互传工具

还在为手机传文件到电脑、旧手机传资料到新手机发愁?用微信传大文件提示 “文件过大无法发送”,用蓝牙传输慢得像蜗牛,几十 MB 的照片要传半天,还经常连接失败;想用数据线,结果翻箱倒柜找不到线&#xff0c…

作者头像 李华
网站建设 2026/3/16 23:30:23

二分法排查:通过禁用模块或数据分段定位

技术文章大纲:Bug悬案侦破大会引言简述软件开发中Bug的普遍性和复杂性引入“悬案”概念:难以复现、逻辑隐蔽或跨系统的疑难问题提出通过协作、工具和方法论高效解决问题的思路Bug悬案的典型特征难以复现(如偶发性并发问题)依赖特定…

作者头像 李华
网站建设 2026/3/16 22:07:06

TritonNext 大会倒计时2天!这份高质量参会指南,请查收!

倒计时 2 天!TritonNext 2026 聚焦下一代算子编程语言与真实落地实践,面向一线开发者的技术大会即将开启。报名通道仍在开放,速戳 👉🏻https://www.bagevent.com/event/9117276?bag_trackcsdngzh2026年1月9日&#xf…

作者头像 李华
网站建设 2026/3/17 6:14:42

高通6490之QCHT手/面部跟踪集成及代码优化

QCHT手部跟踪集成 QCHT(Qualcomm Compute Hand Tracking)是Snapdragon Spaces SDK的扩展交互工具包,构建在OpenXR手部跟踪之上,提供高级功能如远距离/近距离交互、控制器切换、物理模拟和手势UI。它简化了手部交互的实现,支持虚拟手覆盖、手指针和抓取。 详细步骤 导入Q…

作者头像 李华