java中Atomic类之AtomicBoolean
来源:互联网 发布:linux创建目录步骤 编辑:程序博客网 时间:2024/06/05 16:17
版权声明:本文为博主原创文章,转载请写明出处。
目录(?)[-]
- 类
- 举例说明
类
在java.util.concurrent.atomic包下,有AtomicBoolean , AtomicInteger, AtomicLong, AtomicReference等类,它们的基本特性就是在多线程环境下,执行这些类实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入。
举例说明
以AtomicBoolean为例,单线程执行普通的方法(如下),不会出现线程问题:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
然而,当多线程执行时,就会出现在执行判断之后的命令时,会有其他线程插入,变更exits的值。如下段代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
同时执行两线程,打印结果为:
- 1
- 2
- 3
- 4
- 5
- 6
现在,使用AtomicBoolean就可以确保多线程的情况下安全的运行,只有一个线程进行业务处理。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
当两个线程执行此类时,打印结果如下:
- 1
- 2
- 3
- 4
测试类:
阅读全文
0 0
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- atomic包之AtomicBoolean
- java.util.concurrent.atomic 类 AtomicBoolean
- Java类之AtomicBoolean
- java中Atomic类之AtomicInteger-api
- java中Atomic类之AtomicLong
- java中Atomic类之AtomicReference
- java中Atomic类之AtomicLongArray
- java.util.concurrent.atomic 并发包下的原子操作类(AtomicBoolean,AtomicInteger,AtomicLong......))
- java 并发之AtomicBoolean、AtomicInteger
- Java中的Atomic包使用指南:AtomicInteger、AtomicBoolean、AtomicIntegerArray、AtomicReference……
- java 原子量Atomic举例(AtomicReference )—— AtomicInteger、AtomicBoolean、AtomicLong
- Java中的Atomic类
- 笑谈java并发编程一之AtomicBoolean介绍
- Java线程之CAS(Atomic)
- getSharedPreferences简单实用
- Tomcat端口被占
- imageloader的默认配置
- leetcode-121. Best Time to Buy and Sell Stock
- 集合框架-Map遍历
- java中Atomic类之AtomicBoolean
- 解决向sqlserver插入时中文乱码问题
- 【linux】全志T3从内核查看IO复用属性
- IT风投
- 使用xftp上传.sql文件至Linux并显示
- CentOS美化记录
- 对Python的认识
- 数组参数和指针参数分析
- ExpanedListVIew——Layout