Производительность ConcurrentHashMap.putIfAbsent

В своем выступлении об Эффективной Java в 54:15 Джошуа Блох рекомендует использовать get перед putIfAbsent для повышения производительности и параллелизма. Это подводит меня к вопросу, почему эта оптимизация уже не встроена, например

public V BETTER_putIfAbsent(K key, V value) {
    V result = get(key);
    if (result!=null) return result;
    return ORIGINAL_putIfAbsent(key, value);
}

5
задан maaartinus 16 April 2011 в 03:15
поделиться