标签:检查 rup 并发编程 java内存模型 对象 int 编程 并发 for
1. 程序顺序规则。若程序中操作A在操作B之前,则线程中操作A在操作B之前执行。
2. 监视器锁规则。在同一监视器锁上的解锁操作必须在加锁操作之前执行。如图所示,
3. volatile变量规则。对volatile变量的写操作必须在读操作之前执行。
4. 线程启动规则。Thread.start必须在线程中执行的操作之前被调用。
5. 线程关闭规则。线程中的任何操作必须在其他线程检测到该线程结束之前执行,或者从Thread.join中返回,或调用Threas.isAlive返回false。
6. 中断规则。当一个线程在另一个线程上调用interrupt时,必须在被中断线程检测到interrupt调用之前执行。
7. 终结器规则。对象的构造函数必须在启动该对象的终结器之前执行完成。
8. 传递性。如果操作A在操作B之前执行,操作B在操作C之前执行,则操作A必须在操作C之前执行。
如果不使用volatile,可能看到对象的错误或者无效状态。
因为接下来要看《Java并发编程的艺术》,里面有大量的章节讲述内存模型的只是,而这本书的这一章节比较晦涩,所以就不细看了。
标签:检查 rup 并发编程 java内存模型 对象 int 编程 并发 for
原文地址:http://www.cnblogs.com/xiaolang8762400/p/7075301.html