读书人

JVM原理学习札记(一)

发布时间: 2012-11-10 10:48:50 作者: rapoo

JVM原理学习笔记(一)

    int?method1(int?i)?{ ??????int?j?=?3;? ??????return?i+j; ??}??
    int?method1(int?i,?SingletonClass?singleObj)?{ ??????singleObj.intValue?++; ??????int?j?=?i?+?singleObj.intValue; ??????return?j; ??}??
    int?method1(int?i,?SingletonClass?singleObj)?{ ??????int?j?=?0; ??????synchronize(singleObj)?{ ??????????singleObj.intValue?++; ??????????j?=?i?+?singleObj.intValue; ??????} ??????return?j; ??}??
    synchronize(singleObj)?{ ??????int?result?=?obj.method1(2,?singleObj); ??}??
synchronize(singleObj) {    int result = obj.method1(2, singleObj);}


小小总结一下,“一个方法如果涉及对某个共享对象(或堆对象)的写操作,那么它必须同步该对象”这个说法在大多数情况下都对,但还有些失之笼统,或许这样说比较准确些,“如果一个方法对某共享对象的写操作会造成其它线程返回值的不确定性,则该方法应该同步该对象。”

更正:本文出现的书名应该是《Inside the JVM》,之前误写作《Deep Into JVM》了,感谢fantasybei网友提出来。本书是Java世界的经典著作,有兴趣的网友可以用书名在网上找到一大堆资料,其中文译名是《深入Java虚拟机》 http://dingchaoqun12.blog.163.com/blog/static/11606250420104220204413/

读书人网 >其他相关

热点推荐