以下內容摘自:Java並發編程之美
加鎖和釋放鎖的語義:當獲取鎖以后會清空鎖塊內本地內存中將會被用到的共享變量,在使用這些共享變量的時從主內存進行加載,在釋放鎖時將本地內存中修改的
共享變量刷新到主內存中。
進入synchronized塊的內存語義是把在synchronized塊內使用到的變量從線程的工作內存中清除,這樣在synchronized塊中使用到該變量時就不會從線程的工作內存中
獲取,而是直接從主內存中獲取。推出synchronized塊的內存語義是把在synchronized塊內對共享變量的修改刷新到主內存。。
摘了兩段,還是直接看書吧。