java AtomicInteger
来源:互联网 发布:设计模式php 编辑:程序博客网 时间:2024/05/01 05:53
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
import java.text.SimpleDateFormat;
import java.util.Date;import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Description
* @Author
* @Date 2015-5-8 上午9:37:45
*/
public class ConcurrentAtomicTest {
private final static AtomicInteger atomicInteger=new AtomicInteger(1);
private static volatile int integer=1;;
/**
* @Description TODO
* @Return void
* @Throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// testAtomicInteger();
testInteger2();
}
public static void testAtomicInteger() {
String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
System.out.println("Start time : " + time);
int temp=atomicInteger.addAndGet(1);//add
atomicInteger.get();//get current
System.out.print(temp+",");
temp=atomicInteger.decrementAndGet();//Atomically decrements by one the current value.
System.out.print(temp+",");
temp=atomicInteger.getAndIncrement();//Atomically decrements by one the current value.
System.out.print(temp+",");
temp=atomicInteger.intValue();//Atomically decrements by one the current value.
System.out.print(temp+",");
atomicInteger.set(0);//Atomically decrements by one the current value.
temp=atomicInteger.get();
System.out.println(temp+",");
//result:2,1,1,2,0,
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5); // 创建5个执行线程
Runnable runnable = new Runnable() {
@Override
public void run() {
String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
atomicInteger.incrementAndGet();
System.out.println("Now Time : " + time+",integer:"+integer);
}
};
executor.scheduleWithFixedDelay(runnable, 2, 3, TimeUnit.SECONDS);
}
/**
* 测试int加1
* @Description TODO
* @Return void
* @Throws
*/
public static void testInteger2() {
String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
System.out.println("Start time : " + time);
integer++;
System.out.println("integer ++:"+integer);
integer--;
System.out.println("integer --:"+integer);
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5); // 创建5个执行线程
Runnable runnable = new Runnable() {
@Override
public void run() {
String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
integer=integer+1;
System.out.println("Now Time : " + time+",testInteger2 Integer:"+atomicInteger.get());
}
};
executor.scheduleWithFixedDelay(runnable, 2, 3, TimeUnit.SECONDS);
}
// Start time : 10:27:16
// integer ++:2
// integer --:1
// Now Time : 10:27:18,testInteger2 Integer:1
// Now Time : 10:27:21,testInteger2 Integer:1
// Now Time : 10:27:24,testInteger2 Integer:1
// Now Time : 10:27:27,testInteger2 Integer:1
}
1 0
- Java AtomicInteger
- java AtomicInteger
- Java AtomicInteger
- Java AtomicInteger
- Java AtomicInteger
- java AtomicInteger 类学习
- java 原子变量AtomicInteger
- 【Java多线程】AtomicInteger使用
- Java:AtomicInteger简介
- [Java]初识AtomicInteger
- Java基础之AtomicInteger
- Java NIO -AtomicInteger
- Java AtomicInteger源码分析
- Java AtomicInteger 类
- 分析Java AtomicInteger
- java concurrent-AtomicInteger
- Volatile、AtomicInteger、java并发
- Java AtomicInteger(转载)
- 《剑指Offer》学习笔记--面试题13:在O(1)时间删除链表结点
- L脚本语言开发的时间获取服务器和客户端
- powerdesigner comment字段的显示
- javascript 事件处理
- Java中文验证码
- java AtomicInteger
- spring学习笔记(10)——工厂方法配置bean
- robotium 黑盒 获取id点击控件
- 第24讲-项目三:一元二次方程全解
- 位运算总结
- js 调用oc——webView
- PHP操作证书
- iOS分析UI利器—Reveal及简单破解方法
- linux 常用命令