假设我有一个Singleton类之间(任何类可以获取实例):Java并发:共享内存线程
class data
{
Color sun = "WHITE";
String luminance = "HIGH";
int age = 25;
double speed = 52.5
...
}
假设我有几个线程得到这一类的Singleton实例的引用。我试图找出一种方法来同步基于PER FIELD的获取/设置。
如果我对每个变量都有一个同步的getter/setter方法,那么在设置该方法之前,这将基本上“锁定”整个类(而不是单个字段)。
有没有办法让这些线程只锁定实例值而不是锁定整个类?
- 编辑:我很抱歉的巨大的一个对象数据。
数据实际上存储在几个类中。每个对象最多只有20-25个成员。
我觉得我的头会爆炸。你不只是减少可变性?例如。 *删除*锁定巨大的单片icky对象的需要。 – 2010-11-18 22:49:01
我的脸已经融化了,想着这个。 – MattC 2010-11-18 22:51:29
如果您共享一把锁,您是否确定有性能瓶颈?请注意,您可以在大约2 ms内跨多个线程锁定对象1000次。基本上,在你使你的应用程序更加强化之前,你是否测量过这个瓶颈或者你在猜测? – 2010-11-18 23:02:36