Pull to refresh
17
0
feodal @feodal

User

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

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. Очень доволен
Модификация 4-ой задачи в книге «Как передвинуть гору Фудзи» описана.
про статическую фабрику вместо конструктора упомянуто. перечитайте внимательно.

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

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity