栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【线程】并发的三大特性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【线程】并发的三大特性

三大特性为:原子性,可见性,有序性

原子性

一个或者多个操作,也么全部执行,要么全部不执行,这个操作在cpu中不可以中途暂停然后再调度,即不能被中断操作

例子

比如i++就不是线程安全的

因为i++在执行时分为四个步骤:

        1.将i从主存读到工作内存的副本中

        2.+1运算

        3.将结果写入工作内存

        4.将工作内存的值刷回主存(什么时候刷入由操作系统决定,是不确定的)

在保证原子性的前提下,只能保证前三步一起执行,但是不能保证第4步顺利执行

可见性

指当一个线程修改了共享变量之后,其他线程能够立即看见这个修改

有序性 

有序性是指程序指令按照预期的顺序执行而非乱序执行,也就是说,虚拟机在进行代码编译时,对于那些改变顺序之后不会对最终结果造成影响的代码,虚拟机不一定会按照我们写的代码的顺序来执行,有可能将他们冲排序,实际上,对于有些带啊吗进行重排序之后,虽然对变量的值没有造成影响,但有可能出现线程安全问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号