У меня есть несколько потоков, которые читают в одной таблице. Каждый поток хочет прочитать значение из таблицы, а затем изменить состояние с used = ‘N’
на used = ‘Y’
;
Value = `Select min(myColumn) where used =’N’`
Я ставлю свой метод как синхронизированный, но бывает, что несколько потоков читают одно и то же значение и когда вторая попытка обновления использовалась до 'Y', он имел *OptimisticLockException*
. И у меня проблемы с производительностью, когда много потоков из-за *OptimisticLockException*
. Решение SKIP_LOCK
не применимо к моему делу.
У вас есть идеи, пожалуйста, как я могу решить эту проблему?
Спасибо