Код IT
← Каталог

Рекомендации по разработке на Java — 16.2. Потокобезопасные коллекции

Фрагмент из «Рекомендации по разработке на Java»: 16.2. Потокобезопасные коллекции.

Java main.java
public class CacheService {
    // Плохо: синхронизированная коллекция
    private final Map<String, Object> syncMap = Collections.synchronizedMap(new HashMap<>());
    
    // Хорошо: конкурентная коллекция
    private final ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>();
    
    public Object get(String key) {
        return cache.get(key);
    }
    
    public Object computeIfAbsent(String key, Function<String, Object> mappingFunction) {
        return cache.computeIfAbsent(key, mappingFunction);
    }
    
    public void put(String key, Object value) {
        cache.put(key, value);
    }
}
public class CacheService {
    // Плохо: синхронизированная коллекция
    private final Map<String, Object> syncMap = Collections.synchronizedMap(new HashMap<>());
    
    // Хорошо: конкурентная коллекция
    private final ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>();
    
    public Object get(String key) {
        return cache.get(key);
    }
    
    public Object computeIfAbsent(String key, Function<String, Object> mappingFunction) {
        return cache.computeIfAbsent(key, mappingFunction);
    }
    
    public void put(String key, Object value) {
        cache.put(key, value);
    }
}