读书人

synchronized用到不同地方对代码发作的

发布时间: 2012-12-25 16:18:28 作者: rapoo

synchronized用到不同地方对代码产生的影响:

synchronized用到不同地方对代码产生的影响:

还有一些技巧可以让我们对共享资源的同步访问更加安全:

1.? 定义private 的instance变量+它的 get方法,而不要定义public/protected的instance变量。如果将变量定义为public,对象在外界可以绕过同步方法的控制而直接取得它,并改动它。这也是JavaBean的标准实现方式之一。

2.? 如果instance变量是一个对象,如数组或ArrayList什么的,那上述方法仍然不安全,因为当外界对象通过get方法拿到这个instance对象的引用后,又将其指向另一个对象,那么这个private变量也就变了,岂不是很危险。 这个时候就需要将get方法也加上synchronized同步,并且,只返回这个private对象的clone()——这样,调用端得到的就是对象副本的引用了。

读书人网 >编程

热点推荐