AtomicInteger简介
2016-02-29 16:56
260 查看
这个类真的非常实用,更重要的是 它确实非常简单:附上自己的代码,可以自己试试: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);
}
}
/**
* 来看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);
}
}
相关文章推荐
- Android应用中实现选择本地文件与目录的实例分享
- Android事件传递机制
- sysdba进行导出和导入
- 如何Altium Designer 中输出元件清单(BOM表格)
- Web应用程序模板AdminLTE
- 页面切换之Fragment
- 字节、字、bit、byte的关系
- Java 冒泡排序及其改进
- Oracle大数据常见优化查询
- iOS键盘弹出与退回和文本框的完美适配
- 为iPhone 6设计自适应布局
- Android 上的代码阅读器 CoderBrowserHD 修改支持 go 语言代码
- iOS数据简单存储-NSUserDefaults
- Shell数组
- 两个app之间的跳转
- U8Server——U8SDK服务器端(统一渠道SDK接入用户中心和支付中心)
- mysql分表操作
- cocoapods specs 镜像
- 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
- 【实战Java高并发程序设计6】挑战无锁算法