Вам нужно написать цикл. Предполагая, что count
является вашей AtomicInteger
ссылкой, вы должны написать что-то вроде:
while(true)
{
final int oldCount = count.get();
if(oldCount >= VALUE)
break;
if(count.compareAndSet(oldCount, oldCount + 1))
break;
}
Вышеуказанное будет повторяться до тех пор, пока: (1) ваше условие if(count < VALUE)
не будет выполнено; или (2) count
успешно увеличено. Использование compareAndSet
для выполнения приращения позволяет нам гарантировать, что значение count
по-прежнему равно oldCount
(и, следовательно, по-прежнему меньше VALUE
), когда мы устанавливаем его новое значение.