Java内存模型的可见性以及happens-before规则

记录一下自己对这块的一个粗略理解,主要从涵义上入手吧,内存模型就不多说了,主要是可见性和happens-before规则的区别以及联系,很粗糙的讲一下自己的见解

1、可见性,主要讲的就是关于不同线程栈(thread stack)之间的内容何时刷新到堆区(heap)以及何时从堆区获取刷新的一个规则,讲的就是不同线程之间共享变量的修改什么情况下会可见的问题

2、happens-before规则讲的是在可见性规则保证的前提下,由于CPU对于指令的重排序,会破坏线程之间的可见性保证,故增加该规则,防止CPU的重排序导致可见性保证被破坏。

所以happens-before规则是可见性保证在CPU重排序这个现实下的一个限制,保证了共享变量在线程之间的可见性

posted @ 2020-10-13 15:45  MarshWinter  阅读(138)  评论(0编辑  收藏  举报