AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。...
分类:
编程语言 时间:
2015-05-08 10:55:09
阅读次数:
143
Java的多线程编程模型5--从AtomicInteger开始2011-06-23 20:5011393人阅读评论(9)收藏举报java多线程编程jniinteger测试AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时...
分类:
编程语言 时间:
2015-05-07 23:45:38
阅读次数:
179
上节中简单介绍了传统的jdk中的线程的概念,本节中接着介绍下jdk5之后对线程处理有哪些改变。首先,介绍下java.util.concurrent包下有个字包atomic(原子的)包,其中的一些类提供原子性操作类,分别是:1 AtomicBoolean,2 AtomicInteger,AtomicI...
分类:
编程语言 时间:
2015-04-28 20:52:41
阅读次数:
185
AtomicInteger简介这个类真的非常实用,更重要的是 它确实非常简单:附上自己的代码,可以自己试试:AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而Atom...
分类:
其他好文 时间:
2015-04-05 00:58:11
阅读次数:
276
前言 在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。下面以AtomicInteger为例,来看一下是如何实现的。public final int in.....
分类:
编程语言 时间:
2015-03-28 11:28:14
阅读次数:
181
AtomicInteger能够保证对一个整型的操作是原子性。像i++这个操作不是原子操作,存在竞态条件,所以需要加锁,但是加锁的性能不高,如果仅仅为了对一个整数加1。我们来看下他的实现。
private volatile int value;
AtomicInteger本身持有一个整型变量,所有的操作都是基于这个变量的。变量由violate修饰,这个变量是保证可见性的,具体可见另一...
分类:
编程语言 时间:
2015-03-27 22:24:40
阅读次数:
176
1、类介绍
可以用原子方式更新的 int 值。
2、使用场景
主要用于在高并发环境下的高效程序处理。使用非阻塞算法来实现并发控制。
3、API
方法摘要
int
addAndGet(int delta)
以原子方式将给定值与当前值相加。
boolean
compareAndSet(int expect, int upda...
分类:
其他好文 时间:
2015-01-21 11:53:03
阅读次数:
132
原子性:操作是不可分割的,就说这个操作是原子操作。比如a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。java的concurrent包下提供了一些原子类,比如:AtomicInteger、AtomicLong、AtomicReference等。
可见性:是指线程之...
分类:
编程语言 时间:
2014-12-15 21:51:45
阅读次数:
229
参考:Android-Universal-Image-Loader
private final Map mLastUsageDates = Collections.synchronizedMap(new HashMap());
private final AtomicInteger mCacheSize;
private final int SIZE_LIMIT = 10 * 1024 * 10...
分类:
编程语言 时间:
2014-12-03 17:14:41
阅读次数:
193
这是一份完整的Java 并发整理笔记,记录了我最近几年学习Java并发的一些心得和体会。J.U.C 整体认识原子操作 part 1 从AtomicInteger开始原子操作 part 2 数组、引用的原子操作原子操作 part 3 指令重排序与happens-before法则原子操作 part 4 ...
分类:
编程语言 时间:
2014-12-02 22:12:28
阅读次数:
254