我是 scala 的新手,对它的一些用法有点困惑。scala中的“对象私有”字段(private [this])可以被认为是java中的ThreadLocal吗?(每个对象都有自己的副本)。
问问题
924 次
1 回答
0
你误会了。使用private[this]
,您只能从该对象(第 5.3 节)中访问该成员:
一种不同形式的资格是私有的[this]。用这个修饰符标记的成员 M 只能从定义它的对象内访问。
但是仍然有多个线程可以同时更改该对象,即因为它们仍然可以访问它。与ThreadLocal
您将对象绑定到线程而不是对象一样。所以与前者不同的是,每个线程都有自己的对象,并且不能访问其他线程的本地分配对象。
简单地说,用 private[this]- 变量在第二个线程中与那个对象相关联。此外,从封装的角度来看,它们也非常不同。
于 2013-09-19T06:05:59.383 回答