1. Java / Говнокод #3122

    +77

    1. 1
    private final List<ItemInfo> _items = Collections.synchronizedList(new Vector<ItemInfo>());

    Пример убер-синхронизации (чтоб наверняка).
    Используется и по сей день.

    Кусок из крупного эмулятора сервера L2 (Потомок сборки L2Rebellion).

    Запостил: VirtualVoid, 28 Апреля 2010

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

    • Интересно, что будет на уровне машины: по-умному "свернётся" до одного слоя (java is for brain-damaged people), или по две критические секции/мьютекса будет выделяться и лочиться?
      Ответить
    • А в джаве можно кастить Vector в List? Прикольно.
      Ответить
    • Кастить..?)
      public class Vector extends AbstractList implements List, RandomAccess, ...
      Ответить
      • Хочу на кастинг.
        Ответить
        • Сон несбывшейся модели? Уродина и пошла в программисты?
          Ответить
    • Vector сразу синхронизированный чтоль?
      Не пишу на джаве просто.
      Ответить
      • Именно, его методы и без этого синхронизированы.
        Ответить
    • >implements List, RandomAccess,...
      Это что-то типа множественной реализации интерфейса (похоже на множественное наследование)? Объясните пожалуйста. Яву не знаю, просто.
      Ответить
      • Именно. Ява позволяет делать множ. наследование.
        Интерфейсы объявляются через запятую, как вы наверное заметили :)
        Ответить
        • Класс. Я думал она убогая, а она тоже поруливает. В полку явистов прибыло. :)
          Ответить
        • интерфейсы это как бы не совсем множественное наследование
          Ответить

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