synchronized关键字的内存语义

以下内容摘自:Java并发编程之美

加锁和释放锁的语义:当获取锁以后会清空锁块内本地内存中将会被用到的共享变量,在使用这些共享变量的时从主内存进行加载,在释放锁时将本地内存中修改的

共享变量刷新到主内存中。

进入synchronized块的内存语义是把在synchronized块内使用到的变量从线程的工作内存中清除,这样在synchronized块中使用到该变量时就不会从线程的工作内存中

获取,而是直接从主内存中获取。推出synchronized块的内存语义是把在synchronized块内对共享变量的修改刷新到主内存。。

摘了两段,还是直接看书吧。

原文地址:https://www.cnblogs.com/cold-windy/p/11743013.html