焦点访谈:java中的原子操作是怎么样的?
java培训机构(粤嵌科技)表示:java现在在开发界的影响力时候有目共睹的,那么对于想要学习java技术的人来说,想要学习好java的话那么肯定是要先把java的知识点整理清楚并且学好的。下面粤嵌科技的小编就给大家讲解下java中的原子操作是怎么样的?

1、Java中的原子操作是什么?
所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间切换到另一个线程。
2、Java中的原子操作介绍:
jdk1.5的包为java.util.concurrent.atomic
这个包里面提供了一组原子类。其基本特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性。
即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择另一个线程进入,这只是一种逻辑上的理解。实际上是借助硬件的相关指令来实现的,但不会阻塞线程(synchronized 会把别的等待的线程挂,或者说只是在硬件级别上阻塞了)。
其中的类可以分成4组
- AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference
- AtomicIntegerArray,AtomicLongArray
- AtomicLongFieldUpdater,AtomicIntegerFieldUpdater,AtomicReferenceFieldUpdater
- AtomicMarkableReference,AtomicStampedReference,AtomicReferenceArray
Atomic类的作用
- 使得让对单一数据的操作,实现了原子化
- 使用Atomic类构建复杂的,无需阻塞的代码
- 访问对2个或2个以上的atomic变量(或者对单个atomic变量进行2次或2次以上的操作)通常认为是需要同步的,以达到让这些操作能被作为一个原子单元。
AtomicBoolean , AtomicInteger, AtomicLong, AtomicReference 这四种基本类型用来处理布尔,整数,长整数,对象四种数据。
- 构造函数(两个构造函数)
- 默认的构造函数:初始化的数据分别是false,0,0,null
- 带参构造函数:参数为初始化的数据
- set( )和get( )方法:可以原子地设定和获取atomic的数据。类似于volatile,保证数据会在主存中设置或读取
- getAndSet( )方法
- 原子的将变量设定为新数据,同时返回先前的旧数据
- 其本质是get( )操作,然后做set( )操作。尽管这2个操作都是atomic,但是他们合并在一起的时候,就不是atomic。在Java的源程序的级别上,如果不依赖synchronized的机制来完成这个工作,是不可能的。只有依靠native方法才可以。
- compareAndSet( ) 和weakCompareAndSet( )方法
- 这两个方法都是conditional modifier方法。这2个方法接受2个参数,一个是期望数据(expected),一个是新数据(new);如果atomic里面的数据和期望数据一致,则将新数据设定给atomic的数据,返回true,表明成功;否则就不设定,并返回false。
- 对于AtomicInteger、AtomicLong还提供了一些特别的方法。getAndIncrement( )、incrementAndGet( )、getAndDecrement( )、decrementAndGet ( )、addAndGet( )、getAndAdd( )以实现一些加法,减法原子操作。(注意 --i、++i不是原子操作,其中包含有3个操作步骤:第一步,读取i;第二步,加1或减1;第三步:写回内存)。
文章标题:焦点访谈:java中的原子操作是怎么样的?
本文地址:http://4879931.55jiaoyu.com/show-57433.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
本文地址:http://4879931.55jiaoyu.com/show-57433.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.张家口职业技术学院地球物理勘查技术专业介绍_河北
- 12.2023东华大学高考录取分数线是多少(2025年参考)
- 13.烟台城乡建设学校2025年报名条件、招生要求、招生对象
- 14.湖南工学院是什么样的大学(附王牌特色专业)
- 15.湖北高考专科分数线汇总(2012-2022年)
- 16.校友会2025北方工业大学专业排名
- 17.2023河北工程大学高考录取分数线是多少(2025参考)
- 18.济南三中(领秀校区、市南校区)2022录取分数线(2023参考)
- 19.2023年青海高考分数线(2025参考)
- 20.西安欧亚学院学校代码是12712(学校代码)
- 21.2023中国海洋大学高考录取分数线是多少(2025年参考)
- 22.柳州职业技术学院网站网址
- 23.山东商务职业学院应用英语专业介绍_山东应用英语的
- 24.定西师范高等专科学校开设哪些专业,定西师范高等专科
- 25.2025盐城护理学校有哪些盐城护理学校名单一览表
- 26.飒爽英姿,2021年四川城市技师学院学生军训风采
- 27.宣城市信息工程学校_宣城招生网
- 28.邦博尔渭南招生网_渭南招生信息_渭南招生考试平台
- 29.安徽马鞍山中考分数线(2022)-2023年参考
- 30.河北游戏艺术设计专业专科学校
- 31.2022山东所有专科学校名单一览表山东专科学校最新
- 32.成都棠湖外国语学校_成都招生网
- 33.2025益阳民办中专学校有哪些益阳民办中专学校名单
- 34.铜陵一中2022录取分数线(2023参考)
- 35.贵阳兴农中学网站网址
- 36.渭南师范学院学校代码是10723(学校代码)
- 37.2025湖北公办护理学校有哪些湖北公办护理学校名单
- 38.西安航空职业技术学院阎良校区在哪?(西安航空职业技术
- 39.2025年黄河科技学院附属中等专业学校招生简章
- 40.2023陕西师范大学高考录取分数线是多少(2025年参考)
- 41.重庆大学在四川历年招生录取分数线
- 42.西昌礼州中学2021年学费、收费多少
- 43.酒泉职业技术学院开设哪些专业,酒泉职业技术学院招生
- 44.女生学石油专业哪个好?(附适合女生的石油类专业)
- 45.2023山西师大实验中学录取分数线(2025年参考)
- 46.濮阳市油田二高2022录取分数线(2023参考)
- 47.河南高考二本分数线汇总(2012-2022年)
- 48.2025全国新闻学专业大学排名一览表
- 49.青岛城阳区职业教育中心2025年招生简章
- 50.2025天津财经大学珠江学院评价怎么样,学校好不好
- 51.菏泽学院评价怎么样,学校好不好
- 52.上海市崇明中学_上海招生网
- 53.2025安顺职业技术学院(中职部)开设的专业一览表
- 54.广东房地产经营与估价专业专科学校
- 55.江苏淮阴中学2020年宿舍条件
- 56.柘城二高2022录取分数线(2023参考)
- 57.肇庆科技中等职业学校2025年报名条件、招生要求、招生
- 58.百色祈福高级中学_百色招生网
- 59.江苏省苏州第十中学历年招生分数线一览表(2023参考)
- 60.景德镇十大高中排名(最新)汇总
- 51.南充市卫校怎么样
- 52.华蓥市高铁学校办学条件怎么样
- 53.华蓥市职高学校一年学费多少
- 54.南充市幼师学校一年学费多少
- 55.华蓥市铁路运输学校宿舍条件好不好
- 56.南充市旅游学校2024年收费标准
- 57.华蓥市电竞学校食堂条件怎么样
- 58.华蓥市汽修学校一年学费多少
- 59.华蓥市服装设计学校毕业后会安排实习吗
- 60.华蓥市高铁学校教学质量好不好
- 61.往年山西省晋中市卫生学校各专业招生人数
- 62.一级建造师全国通过率是多少?简短介绍
- 63.读完初中就能去读铁路学校吗
- 64.浙江初中生可以去的汽修学校
- 65.解放军空军西安飞行学院招生概况
- 66.铜川往年读卫校读什么专业好
- 67.高考体检项目有哪些 都检查什么
- 68.成都口腔工艺技术学校招生_口腔工艺技术课程|分数|简章|就业_四川省人民医院护士学校
- 69.【推荐】一个java开发程序员的经验总结
- 70. 四川什么铁道工程技术学校好

