我有一個執行非常複雜的操作的對象的實例。如何使緩存線程安全
所以在第一種情況下我創建一個實例,並保存它,它自己的定製緩存。
從明年倍返還線程來,如果他發現有一個現成的對象已存在於他們把它從緩存中高速緩存,以便在性能良好的明智。
我很擔心如果兩個線程有什麼相同的實例。這兩個線程是否有可能互相腐蝕?
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