Данных в ThreadPool

183
24 января 2018, 15:20

Здравствуйте друзья!

У меня есть пул, scheduledAtFixedRate, он считает налоги раз в N времени и в run() происходит обработка. Проблема в том, что когда налог меняется во время действия таска, то в run() он выдаёт уже новое значение (которое менялось), а должен довести тик и выдать старое, а потом в новый тик уже положить новое. Как осуществить такую разводку?

Спасибо!

Answer 1

Не синхронизированый доступ к переменным во время выполнения метода.

1) Синхронизировать и блокировать доступ к объекту через конструкцию syncronized(executedObject){ }

2) использовать ReentrantLock когда метод начинает выполняться.

READ ALSO
Inject обьекта потомка

Inject обьекта потомка

Есть класс - родитель ParentИ потомок от него Child

247
Какая временная зона используется в Oracle типе Date

Какая временная зона используется в Oracle типе Date

Имеется в базе (Oracle 12C) таблица с полем типа Date, таблица старая и в этом поле хранится не только дата но и времяКак узнать, какое значение хранится...

194
Кодировка, Java, NetBeans

Кодировка, Java, NetBeans

Учусь ява для вебНаписал сокет для общения с клиентом все работает но с проблемой такой что при запуске программы прямо в ide то работает отлично...

143
Ошибка при попытке приведения типа

Ошибка при попытке приведения типа

Здравствуйте, подскажите пожалуйстаПри передаче в данный код значений определенного типа int, long и т

164