【3】线程安全-有序性

点击找到我Gitee
一个线程观察其他线程的指令执行顺序,由于指令重排序的存在,这个观察结果杂乱无序,如果两个操作的执行次序无法从这八条规则中得出,就不能保证他们的有序性,虚拟机就可以随意打乱两个指令,对他们重排序。

在这里插入图片描述
后两个关键字保证一次执行,可以实现有序性,但是java内存模型先天也是有序的,
这是因为happens - before 原则-- 先行发生原则–八条原则(深入理解java虚拟机书)

happens - before 原则

happens - before 原则-- 先行发生原则–八条原则(深入理解java虚拟机书)
JVM会对指令进行重排序,只会对程序不进行数据依赖的指令重排序,能保证在单线程中正确执行,却无法保证多线程正确。
在这里插入图片描述
在这里插入图片描述
前四条重要,后四条显而易见
在这里插入图片描述
这两个主要介绍了线程的操作
这两个主要介绍了线程的操作,

如果两个操作的执行次序无法从这八条规则中得出,就不能保证他们的有序性,虚拟机就可以随意打乱两个指令,对他们重排序。

线程安全性-总结

三大特征介绍完了

原子性:互斥操作

可见性:

有序性:happens - before 原则

一个线程观察其他线程的指令执行顺序,由于指令重排序的存在,这个观察结果杂乱无序,如果两个操作的执行次序无法从这八条规则中得出,就不能保证他们的有序性,虚拟机就可以随意打乱两个指令,对他们重排序。

一分也是爱

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值