比方说,我有这个类:无需访问Zoo
对象我是否需要在Java中同步对不可变类型的访问?
class Zoo
{
protected String bearName;
protected Double trainerSalary;
protected Integer monkeyCount;
}
能有一个线程写入这些领域,另一种阅读,?
注意:这些值可以彼此分开处理,因此在读取monkeyCount
时更改trainerSalary
并不重要。
编辑:
只是为了澄清,这些字段是可变;只有他们的引用对象是不可变的。
什么使这些值”不可变“?如果你可以写信给他们,他们需要通过某种形式的同步来保护。 – 2011-04-29 22:02:59
@Rodney Gitzel:我认为它的含义是* objects *本身是不可变的,你不能持有对'String '改变内容(你需要创建一个新对象) – 2011-04-29 22:04:45
@Rodney Gitzel String,Double和Integer在Java中都是不可变的类型,做任何改变它们的工作都会返回一个新的对象 – pickypg 2011-04-29 22:04:46