以下内容摘自:Java并发编程之美
加锁和释放锁的语义:当获取锁以后会清空锁块内本地内存中将会被用到的共享变量,在使用这些共享变量的时从主内存进行加载,在释放锁时将本地内存中修改的
共享变量刷新到主内存中。
进入synchronized块的内存语义是把在synchronized块内使用到的变量从线程的工作内存中清除,这样在synchronized块中使用到该变量时就不会从线程的工作内存中
获取,而是直接从主内存中获取。推出synchronized块的内存语义是把在synchronized块内对共享变量的修改刷新到主内存。。
摘了两段,还是直接看书吧。