Java 线程/内存模型的缺陷和增强 http://www.uml.org.cn/j2ee/j2ee090601.htm
片断: 假设某条线程执行一个synchronized代码段,其间对某变量进行操作,JVM会依次执行如下动作: (1) 获取同步对象monitor (lock) (2) 从主存复制变量到当前工作内存 (read and load) (3) 执行代码,改变共享变量值 (use and assign) (4) 用工作内存数据刷新主存相关内容 (store and write) (5) 释放同步对象锁 (unlock) 可见,synchronized的另外一个作用是保证主存内容和线程的工作内存中的数据的一致性
IBM的专题:Java 多线程与并发编程专题 http://www.ibm.com/developerworks/cn/java/j-concurrent/
|