本篇知识主要包括:缓存一致性和乱序执行优化。
一.缓存一致性(主流的缓存一致性协议——MESI)
目的:用户保证多个CPU cache之间缓存共享数据的一致
概念:MESI是一种主流的缓存一致性协议,已经用在Pentium和PowerPC处理器中。它定义了缓存块的几种状态
-
-
- modified(修改):缓存块已经被修改,必须被写回主存,其他处理器不能再缓存这个块
- exclusive(独享):缓存块还没有被修改,且其他处理器不能装入这个缓存块,与主存中的数据一致,其他cpu读取时变成共享状态,修改时变成修改状态
- share(共享):缓存块未被修改,且其他处理器可以装入这个缓存块
- invalid(无效):缓存块中的数据无效,可能时其他cpu修改了该缓存行
- 操作如下:
-
二.乱序执行优化
概念:处理器为了提高运算速度而做出的违背代码原有顺序的优化
目的以及缺点:提高了处理速度,但会让我们的代码执行顺序发生变化,在多核时代会出现很多问题。
注:感谢慕课网jimin老师,做这个并发集合知识总结的初衷完全是因为看完他的《Java并发编程与高并发解决方案》产生的想法。