[Android Pro] AtomicInteger的用法

简介:

J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作. 比 如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或两个以上的操作)通常都需要被synchronize以便两者的操作能够被当作是 一个atomic的单元。

java多线程用法-使用AtomicInteger
下面通过简单的两个例子的对比来看一下 AtomicInteger 的强大的功能
1
2
3
4
5
6
7
8
9
10
11
class  Counter {
     private  volatile  int  count =  0 ;
 
     public  synchronized  void  increment() {
            count++;   //若要线程安全执行执行count++,需要加锁
     }
 
     public  int  getCount() {
            return  count;
     }
}
1
2
3
4
5
6
7
8
9
10
11
class  Counter {
     private  AtomicInteger count =  new  AtomicInteger();
 
     public  void  increment() {
            count.incrementAndGet();
     }
        //使用AtomicInteger之后,不需要加锁,也可以实现线程安全。
     public  int  getCount() {
           return  count.get();
     }
}

 

从上面的例子中我们可以看出:使用AtomicInteger是非常的安全的
那么为什么不使用记数器自加呢,例如count++这样的,因为这种计数是线程不安全的,高并发访问时统计会有误,而AtomicInteger为什么能够达到多而不乱,处理高并发应付自如呢?
这是由硬件提供原子操作指令实现的。在非激烈竞争的情况下,开销更小,速度更快。Java.util.concurrent中实现的原子操作类包括:
AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。
分类:  Android Pro
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/6869657.html如需转载请自行联系原作者

demoblog
相关文章
|
Android开发
Android 中选项菜单(Option menu)的用法
Android 中选项菜单(Option menu)的用法
647 0
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
1372 12
|
定位技术 Android开发
Intent在Android中的几种用法
Intent在Android中的几种用法
416 1
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式有哪些用法
Kotlin的Lambda表达式是匿名函数的简洁形式,常用于集合操作和高阶函数。基本语法是`{参数 -> 表达式}`。例如,`{a, b -> a + b}`是一个加法lambda。它们可在`map`、`filter`等函数中使用,也可作为参数传递。单参数时可使用`it`关键字,如`list.map { it * 2 }`。类型推断简化了类型声明。
349 0
|
人工智能 API 语音技术
探索Gemini Pro AI在智能Android应用中的魅力
探索Gemini Pro AI在智能Android应用中的魅力
383 0
|
人工智能 API 语音技术
使用 Gemini Pro AI 开发 Android 应用程序
使用 Gemini Pro AI 开发 Android 应用程序
620 0
|
Java Android开发 数据安全/隐私保护
安卓逆向 -- IDA基本用法
安卓逆向 -- IDA基本用法
414 0
|
Android开发
Android 星级评分条的基本用法
Android 星级评分条的基本用法
394 2
|
Android开发
Android onActivityResult()的属性与用法
Android onActivityResult()的属性与用法
563 1
|
Android开发
Android 中CheckBox复选框按钮的基本用法
Android 中CheckBox复选框按钮的基本用法
468 0
Android 中CheckBox复选框按钮的基本用法

热门文章

最新文章