读书人

再则synchronized

发布时间: 2012-09-01 09:33:02 作者: rapoo

再说synchronized

更有一些技巧能够让我们对共享资源的同步访问更加安全:
1.? 定义private 的instance变量+他的 get方法,而不要定义public/protected的instance变量。假如将变量定义为public,对象在外界能够绕过同步方法的控制而直接取得他,并改变他。这也是JavaBean的标准实现方式之一。
2.? 假如instance变量是个对象,如数组或ArrayList什么的,那上述方法仍然不安全,因为当外界对象通过get方法拿到这个instance对象的引用后,又将其指向另一个对象,那么这个private变量也就变了,岂不是很危险。这个时候就需要将get方法也加上synchronized同步,并且,只返回这个private对象的clone()——这样,调用端得到的就是对象副本的引用了。

读书人网 >软件架构设计

热点推荐