我有一个执行非常复杂的操作的对象的实例。如何使缓存线程安全
所以在第一种情况下我创建一个实例,并保存它,它自己的定制缓存。
从明年倍返还线程来,如果他发现有一个现成的对象已存在于他们把它从缓存中高速缓存,以便在性能良好的明智。
我很担心如果两个线程有什么相同的实例。这两个线程是否有可能互相腐蚀?
Map<String, SoftReference<CacheEntry<ClassA>>> AInstances= Collections.synchronizedMap(new HashMap<String, SoftReference<CacheEntry<ClassA>>>());
缓存是否提交对其副本的引用,还是手抄送?线程如何将更改写入缓存对象?这些写入是否绕过缓存?如果是这样,是否从高速缓存弹出数据,因为高速缓存上的副本是陈旧的? – ArjunShankar 2011-12-22 15:09:30
这将取决于您的缓存,请张贴您的代码。 – 2011-12-22 15:10:20
它不依赖于实例的线程安全吗?你也可以同步访问你的缓存,并且只允许一个线程访问你的实例。 – 2011-12-22 15:12:07