焦点访谈: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://6ezbnx3p.55jiaoyu.com/show-57433.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
						
						
						
						
					本文地址:http://6ezbnx3p.55jiaoyu.com/show-57433.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.德阳科贸职业学院中职部软件技术专业专业介绍
- 12.沈阳所有的本科专科大学名单(2025)
- 13.2025中国艺术类大学排名(校友会版)
- 14.湖州市第二中学_湖州招生网
- 15.重庆高中学校升学排行2022(附高考成绩)-2023参考
- 16.武汉江南技术学校2025年宿舍条件
- 17.河北传媒学院是几本?是985和211吗?
- 18.2025怀仁县第一高级职业中学招生计划招生人数是多少
- 19.2025重庆工商大学派斯学院评价怎么样,学校好不好
- 20.池州职业技术学院网站网址
- 21.2025哈尔滨工程大学专业排名一览表
- 22.天津音乐学院是什么样的大学985还是211高校(附王牌
- 23.2023沈阳航空航天大学高考录取分数线是多少(2025参考)
- 24.雅安市十大高中排名(最新)汇总
- 25.烟台三中2022录取分数线(2023参考)
- 26.往年高考多少分可以上河北工业大学?(2025年参考)
- 27.陕西数控加工中职学校排名榜(最新)
- 28.长安大学附属中学_西安招生网
- 29.湖北工程学院新技术学院_孝感招生网
- 30.江阴第一中学2021年宿舍条件
- 31.2025年军校体检项目一览表及军校体检要求
- 32.乐清三中2022录取分数线(2023参考)
- 33.2025沈阳排名前三的艺术学校名单
- 34.2025张家口排名前八的公办中职学校名单
- 35.苏州技校_苏州有哪些技校_苏州招生网
- 36.武汉2021年哪个航空服务学校就业比较好
- 37.2023陕西大专院校排名名单一览表
- 38.广东惠州中考普高录取分数线(2022)-2023年参考
- 39.富县高级中学网站网址
- 40.邦博尔湖州招生网_湖州招生信息_湖州招生考试平台
- 41.邦博尔哈尔滨招生网_哈尔滨招生信息_哈尔滨招生考试平台
- 42.东北农业大学是什么样的大学985还是211高校(附王牌
- 43.杭州所有的本科专科大学名单(2025)
- 44.六盘水第二中学网站网址
- 45.2025四平各区重点高中学校名单及排名表
- 46.招生信息_永丰职业中等专业学校
- 47.成都纺织高等专科学校地址在哪里
- 48.往年高考多少分可以上西北政法大学?(2025年参考)
- 49.西安科技大学有哪些专业
- 50.广东开设会计电算化专业的职业学校名单一览表
- 51.中南大学_长沙招生网
- 52.淄博职业学院评价怎么样,学校好不好
- 53.中南大学招生录取分数线
- 54.汶上一中2022录取分数线(2023参考)
- 55.柳州第二职业技术学校怎么样、好不好
- 56.郫县第四中学怎么样、好不好
- 57.德阳外国语学校2021年学费、收费多少
- 58.太原六十三中、太原六十四中2022录取分数线(2023
- 59.河南省实验中学2022录取分数线(2023参考)
- 60.吉首大学医学院_湘西招生网
- 51.华蓥市旅游学校毕业后会安排实习吗
- 52.宜宾市电竞学校怎么样
- 53.宜宾市电竞学校宿舍条件好不好
- 54.南充市汽修学校毕业后分配工作吗
- 55.华蓥市铁路职业学校推荐
- 56.南充市航空职业学校教学质量好不好
- 57.南充市轨道交通学校毕业后分配工作吗
- 58.南充市电竞学校2024年招生简章
- 59.宜宾市技工学校办学条件怎么样
- 60.南充市职高学校毕业后会安排实习吗
- 61.德阳市富民技校高铁服务与管理专业
- 62.如何选择合适的航空学校?
- 63.百度双十二营销投放指南
- 64.魔法师花的养殖方法-简短介绍
- 65.如何培养空乘人员的个人礼仪?
- 66.夏县职业中学环境设施怎么样、学生就业好不好?
- 67.让人越相处越喜欢的女生-知书达理
- 68.护士职业规划发展方向,哪个更合适你?
- 69.植物从开花到结果成熟的过程-简短介绍
- 70.申请乘务员的主要条件是什么?

