atomicbooleanLong是怎么实现同步的

Java SE &&&&最新内容
Java SE &&&&随机内容1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读3530人阅读
J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋&#20540;(更新)操作.
比如对于&#43;&#43;运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或两个以上的操作)通常都需要被synchronize以便两者的操作能够被当作是一个atomic的单元。
java多线程用法-使用AtomicInteger
下面通过简单的两个例子的对比来看一下 AtomicInteger 的强大的功能
class Counter {
private volatile int count = 0;
public synchronized void increment() {
count&#43;&#43;; &//若要线程安全执行执行count&#43;&#43;,需要加锁
public int getCount() {
class Counter {
private AtomicInteger count = new AtomicInteger();&
public void increment() {
count.incrementAndGet();
& & & &//使用AtomicInteger之后,不需要加锁,也可以实现线程安全。
public int getCount() {
return count.get();
从上面的例子中我们可以看出:使用AtomicInteger是非常的安全的
那么为什么不使用记数器自加呢,例如count&#43;&#43;这样的,因为这种计数是线程不安全的,高并发访问时统计会有误,而AtomicInteger为什么能够达到多而不乱,处理高并发应付自如呢?
这是由硬件提供原子操作指令实现的。在非激烈竞争的情况下,开销更小,速度更快。Java.util.concurrent中实现的原子操作类包括:
AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:329028次
积分:7349
积分:7349
排名:第892名
原创:410篇
评论:91条
(32)(14)(1)(17)(7)(2)(10)(59)(22)(57)(49)(76)(24)(19)(22)(1)}

我要回帖

更多关于 atomiclong 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信