| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > чтение кешированного значения, пока пишется новое |
| Автор: CompWorm 11.9.2014, 21:01 |
| Здарова! - есть большой объект некоторого класса (желательно иметь одну копию в каждый момент времени), который хранит ряд параметров (класс-мемберы). - есть тред, который в цикле читает параметры объекта. - есть тред, который в цикле неспешно обновляет параметры объекта. Параметры объекта должны быть консистентными, то есть нельзя начинать читать параметры, пока пишущий тред не закончит обновление каждого параметра. простое решение - поставить запись и чтение под мьютекс (synchronized), однако ключевым тут является "неспешное обновление в цикле" - читающий тред должен читать кешированный объект, пока пишущий занят обновлением параметров. на плюсах я б наверно решил задачу в лоб - создал бы буфер для записи и флипил бы его под мьютексом по мере готовности, но в Java я слыхал есть какая-то нативная возможноть читать кешированное, пока не окончится блок синхронайза пишущего треда (куча ReadWriteLock всяких итп)... что посоветуете? |