内部屏障
Posted misscai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部屏障相关的知识,希望对你有一定的参考价值。
(一) 内部屏障范围
内存屏障分为4中,每种屏障的效果
Load : 从内存装载数据
Store: 将数据写入内存
(二) 内部屏障类型表
屏障类型 | 指令示例 | 说明 |
LoadLoad Barriers | Load1;LoadLoad;Load2 |
确保Load1数据的装载先于Load2及 所有后续装载指令的状态 |
StoreStore Barriers | Store1;StoreStore;Store2 |
确保Store1数据对其他处理器可见(刷新到内存) 先于Store2及所有后续存储指令的存储 |
LoadStore Barriers | Load1;LoadStore;Store2 |
确保Load1数据装载先于Load2及 所有后续的存储指令刷新到内存 |
StoreLoad Barriers | Store1;StoreLoad;Load2 |
确保Store1数据对其他处理器变得可见(指刷新到内存)先于Load2及所有后续装载指令的装载。 StoreLoad Barriers会使该屏障之前的所有内存访问指令(存储和装载指令)完成之后,才执行该屏障之后的内存访问指令 |
爱如潮水
以上是关于内部屏障的主要内容,如果未能解决你的问题,请参考以下文章
深入源码分析Handler 消息机制 LooperMessageQueue 消息同步屏障IdleHandlerMessage 复用