Как стать автором
Обновить
17
0
feodal @feodal

Пользователь

Отправить сообщение
Ну предыдущий код можно записать вот так… чтобы было более понятно, где чек и где акт)

if (!_current_events.contains(methodName)) {
_current_events.add(methodName);
}esle{
throw new RuleViolationException();
}
У Вас «check-then-act» проблема когда Вы ивенты проверяете на вхождение

if (_current_events.contains(methodName)) {
...
}
_current_events.add(methodName);



Often problems occur when one thread does a «check-then-act» (e.g. «check» if the value is X, and then «act» to do something that depends on the value being X) and another thread does something to the value in between the «check» and the «act».

Решение может служить замена Collections.synchronizedSet(new HashSet()); на конкурентную мапу (ConcurrentHashMap), в которой храните ивенты как ключи и null как значения
в избранное
уже в этом году 2 раза был на Драге… жаль, что на эти числа уезжаю в Ясну((
мсье знает толк
более того, эта задача оттуда и взята
еще для тех, кто хочет расширить свои познания в многопоточном программировании на джаве рекомендовано прочитать Java Concurrency in Practice
отличная книга. всем рекомендую
было бы замечательно, если бы взяли с вики цель и предназначение паттерна.

tinyurl.com/ya39rjm
побойтесь Бога. Вы же читаете статью о паттернах. Вы просто обязаны знать что такое «банда четырех».
не нравится как написали. человеку первый раз столкнувшемуся с данным паттерном будет тяжело понять зачем он нужен.

стараемся ;)
спасибо за статью. сам хочу перейти на эл. бухгалтерию, но к написанным системам есть какое-то недоверие. а тут старый-добрый батенька эксель.
учился в подобной школе в Киеве. КПНЛ 145. Очень доволен
synchronize это дополнительные расходы
Модификация 4-ой задачи в книге «Как передвинуть гору Фудзи» описана.
про статическую фабрику вместо конструктора упомянуто. перечитайте внимательно.

про синтетический конструктор согласен

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность