当前位置:网站首页>AtomicInteger (计数器)的用法
AtomicInteger (计数器)的用法
2022-07-20 14:47:00 【baidu_24743861】
1、为什么使用AtomicInteger
- AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理.
- 在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
AtomicInteger介绍
AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。
AtomicInteger使用场景
AtomicInteger提供原子操作来进行Integer的使用,因此十分适合高并发情况下的使用。
引入
import java.util.concurrent.atomic.AtomicInteger;
获取和赋值
atomicInteger.get(); //获取当前值
atomicInteger.set(0); //设置当前值
getAndAdd()方法与AddAndGet方法
AtomicInteger atomicInteger = new AtomicInteger(1);
System.out.println(atomicInteger.get()); --1
System.out.println(atomicInteger.getAndAdd(10)); --1 获取当前值,并加10
System.out.println(atomicInteger.get()); --11
System.out.println(atomicInteger.addAndGet(10)); --21 获取加10后的值,先加10
System.out.println(atomicInteger.get()); --21
getAndDecrement()和DecrementAndGet()方法
AtomicInteger atomicInteger = new AtomicInteger(123);
System.out.println(atomicInteger.get()); --123
System.out.println(atomicInteger.getAndDecrement()); --123 获取当前值并自减
System.out.println(atomicInteger.get()); --122
System.out.println(atomicInteger.decrementAndGet()); --121 先自减再获取减1后的值
System.out.println(atomicInteger.get()); --121
边栏推荐
- ===、==、Object.is 基本包装类型
- WPF 实现 RichTextBox 关键字查询高亮
- 控制台报错 Uncaught TypeError: Cannot read properties of null (reading ‘append‘) 解决方案
- With the flow dividend receding, how can FMCG agents break through and grow with RPA?
- MySQL pessimistic lock
- Client and server of grpc magiconion Library (case version)
- js 数组reduce方法求和 求最大值 求最小值方法
- MongoDB数据库的简单使用
- MoonPdfLib预览PDF使用记录
- 【mindspore】【xception模型】脚本语句疑有错误
猜你喜欢
多线程进阶(下)
流量红利退去,快消品代理商如何借助RPA破局增长?
[paper translation] tnt: target driven trajectory prediction
数据代理原理
C#《学习代码片段》- 递归获取文件夹下所有文件
关于win7/win10系统安装的基本设置
高並發的深入理解
【Harmony OS】【FAQ】鸿蒙应用开发问题分享(字体/构造器)
每日一题·1260.二维网络迁移·模拟
[harmonyos] [arkui] Hongmeng linear gradient to achieve gradient, how to dynamically set it? I tried it for your reference
随机推荐
DOS assembly branch, loop programming and register analysis
【HarmonyOS】【ArkUI】鸿蒙 linear-gradient 来实现渐变色,怎么动态设置呢?尝试了一下,供大家参考
【mindspore】【训练警告】执行训练代码时存在的警告
业务出海,灵感乍现前要先「把手弄脏」
About the basic setup of win7/win10 system installation
centos7.4下安装配置PHP5-7版本
Tdengine数据库运行出现的bug
【HMS core】【push kit】【FAQ】华为推送服务 手机未收到推送消息/消息延迟/息屏通知 问题合集
Write multiple main in the source file of vs stdio project
5W Wireless SoC scheme chip fs68001 encapsulates SOP16 and sop8
px rem em
C#递归获取文件夹下所有文件 并绑定到 TreeView控件中
【转】Jackson之多态反序列化(父类转不同子类)
Association between roles, roles collection and scopes on SAP BTP
字体随窗体的变化而变化
MongoDB数据库的简单使用
多线程进阶(下)
A line break triggered thinking!
js 数组reduce方法求和 求最大值 求最小值方法
分布式系统中数据存储方案实践