AtomicInteger简介
2016-06-02 09:57
411 查看
这个类真的非常实用,更重要的是 它确实非常简单:
附上自己的代码,可以自己试试:
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
接口:
最简单应用:
附上自己的代码,可以自己试试:
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
接口:
package test; import java.util.concurrent.atomic.AtomicInteger; /** * 来看AtomicInteger提供的接口。 //获取当前的值 public final int get() //取当前的值,并设置新的值 public final int getAndSet(int newValue) //获取当前的值,并自增 public final int getAndIncrement() //获取当前的值,并自减 public final int getAndDecrement() //获取当前的值,并加上预期的值 public final int getAndAdd(int delta) * @author YangBaoBao * */ public class AtomicIntegerDemo { public static void main(String[] args) { AtomicInteger ai=new AtomicInteger(0); int i1=ai.get(); v(i1); int i2=ai.getAndSet(5); v(i2); int i3=ai.get(); v(i3); int i4=ai.getAndIncrement(); v(i4); v(ai.get()); } static void v(int i) { System.out.println("i : "+i); } }
最简单应用:
/** * 线程号计数 */ private AtomicInteger counter = new AtomicInteger(0); //自增 Integer jobId = counter.getAndIncrement();
相关文章推荐
- iOS异步图片加载优化与常用开源库分析
- 为什么选择Kubernetes作为云平台的微服务治理框架 | 网络公开课
- Mysql的varchar排序按照数字顺序
- 关于Block的copy和循环引用的问题
- 堆栈的区别Java
- 第三方组件
- 慕课爬虫
- 一种高性能与高可用的流媒体系统之媒体流状态管理方法
- 软件测试笔记
- ol2已知经纬度在图层上画圆
- jsp页面中的post提交方式
- AndroidStudio使用Git上传代码至GitHub
- java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=xxx}
- Spring MVC返回JSON数据
- 面试题91:清除矩阵0所在行列
- iOS内IPC(进程间通信)方法小结
- 课堂练习-最低价购书方案
- 第二阶段团队站立会议07
- 子网划分题目与解析
- codeforces 677 D. Vanya and Treasure