happens-before
http://ifeve.com/easy-happens-before/
https://en.wikipedia.org/wiki/Happened-before
https://blog.csdn.net/ns_code/article/details/17348313
https://www.zhihu.com/question/57682334
https://www.jianshu.com/p/1508eedba54d
?
Happens-before是用來指定兩個(gè)操作之間的執(zhí)行順序。提供跨線程的內(nèi)存可見性。
在Java內(nèi)存模型中,如果一個(gè)操作執(zhí)行的結(jié)果需要對(duì)另一個(gè)操作可見,那么這兩個(gè)操作之間必然存在happens-before關(guān)系。
Happens-before規(guī)則如下
程序順序規(guī)則
單個(gè)線程中的每個(gè)操作,總是前一個(gè)操作happens-before于該線程中的任意后續(xù)操作
監(jiān)視器鎖規(guī)則
對(duì)一個(gè)鎖的解鎖,總是happens-before于隨后對(duì)這個(gè)鎖的加鎖
volatile變量規(guī)則
對(duì)一個(gè)volatile域的寫,happens-before于任意后續(xù)對(duì)這個(gè)volatile域的讀
傳遞性
A happens-before B, B happens-before C, 則 A happens-before C
Start規(guī)則
Join規(guī)則
轉(zhuǎn)載于:https://www.cnblogs.com/gotodsp/p/8838205.html
總結(jié)
以上是生活随笔為你收集整理的happens-before的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django REST framewor
- 下一篇: core-site.xml