![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Здарова!
- есть большой объект некоторого класса (желательно иметь одну копию в каждый момент времени), который хранит ряд параметров (класс-мемберы). - есть тред, который в цикле читает параметры объекта. - есть тред, который в цикле неспешно обновляет параметры объекта. Параметры объекта должны быть консистентными, то есть нельзя начинать читать параметры, пока пишущий тред не закончит обновление каждого параметра. простое решение - поставить запись и чтение под мьютекс (synchronized), однако ключевым тут является "неспешное обновление в цикле" - читающий тред должен читать кешированный объект, пока пишущий занят обновлением параметров. на плюсах я б наверно решил задачу в лоб - создал бы буфер для записи и флипил бы его под мьютексом по мере готовности, но в Java я слыхал есть какая-то нативная возможноть читать кешированное, пока не окончится блок синхронайза пишущего треда (куча ReadWriteLock всяких итп)... что посоветуете? Это сообщение отредактировал(а) CompWorm - 11.9.2014, 21:07 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Говорят в Африке зимы нет. Болтают. Это не возможность, а возможный побочный эффект. Т.е. ничего там не гарантированно, но возможно. В общем AtomicReference + copy-on-write и вперед. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |