diff --git a/AsimpleCacheDemo/ASimpleCache/org/afinal/simplecache/ACache.java b/AsimpleCacheDemo/ASimpleCache/org/afinal/simplecache/ACache.java index 94a5ae6..caa6f1d 100644 --- a/AsimpleCacheDemo/ASimpleCache/org/afinal/simplecache/ACache.java +++ b/AsimpleCacheDemo/ASimpleCache/org/afinal/simplecache/ACache.java @@ -83,8 +83,12 @@ public static ACache get(Context ctx, long max_zise, int max_count) { public static ACache get(File cacheDir, long max_zise, int max_count) { ACache manager = mInstanceMap.get(cacheDir.getAbsoluteFile() + myPid()); if (manager == null) { - manager = new ACache(cacheDir, max_zise, max_count); - mInstanceMap.put(cacheDir.getAbsolutePath() + myPid(), manager); + synchronized(this){ + if(manager == null){ + manager = new ACache(cacheDir, max_zise, max_count); + mInstanceMap.put(cacheDir.getAbsolutePath() + myPid(), manager); + } + } } return manager; }