如果單看一句話的,基本上是無法理解的。這句話的意思,并不是“對于一個變量a,a=5這樣的寫操作,在b=a這樣的讀操作之前執(zhí)行”的意思,這句話實際上就是體現(xiàn)happens-before原則具備傳遞性。
想要解理這句話的意思可以看下面的文章: - java多線程:volatile變量、happens-before關(guān)系及內(nèi)存一致性:這章文章的“什么是 happens-before 關(guān)系?”部分以下的一部分,舉了一個傳遞的例子。例子中主要說明的是“和volatile變量相關(guān)的變量”的變化。 - 深入理解Java內(nèi)存模型(四)——volatile:看“volatile寫-讀建立的happens before關(guān)系”以后的內(nèi)容,在內(nèi)容的級別講了是如何實現(xiàn)的。用了volatile變量后,對volatile變量寫之前的數(shù)據(jù),在讀volatile變量之后,都有了“可見性”(必須是在“讀volatile變量”之后,才有可見性) - [譯] Java Volatile 關(guān)鍵字詳解:這個也寫的不錯,但沒有上兩篇文章,不太理解。 - 【Java并發(fā)編程】之十六:深入Java內(nèi)存模型——happen-before規(guī)則及其對DCL的分析(含代碼):講了happens-before,還有最下面的volatile和final的變量的“可見性”的說明 - Java并發(fā)編程:volatile關(guān)鍵字解析:“這句話實際上就是體現(xiàn)happens-before原則具備傳遞性”這句話就出自這里
新聞熱點
疑難解答