1. C# / Говнокод #12799

    +138

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static Dictionary<object, object> _cache = new Dictionary<object, object>();
    .........
    if( _cache.ContainsKey( key ) )
    {
      lock( syncRoot )
      {
        _cache[key] = value;
        return;
      }
    }
    _cache.Add( key, value );

    Бараньи мозги.

    Запостил: grobotron, 25 Марта 2013

    Комментарии (6) RSS

    • lock (syncRoot)
         _cache[key] = value;
      Ответить
    • Правильно, за такое бутылкой и по башке...
      Ответить
    • Atomic AddOrUpdate они не проходили.
      Ну и помимо неатомарности еще и производительность такого однопоточного кеша оставляет желать лучшего.
      А ведь даже в шарпе (в котором перечислений не было до 3-ей версии, а аналога великолепной ConcurentHashMap до 4-ой ) таки удосужились написать ConcurrentDictionary.
      Потому тут джва варианта:
      - типичный нубский говнокеш
      - код времен .NET 3.5 или раньше
      Ответить
    • бараньи мозги - это очень вкусно!
      Ответить

    Добавить комментарий