Czy istnieje sposób, aby wykonać operację "dekrementacji, jeśli wynik jest dodatni lub zerowy" z wartością AtomicInteger
? Aby wyjaśnić pożądanego zachowania:AtomicInteger: zachowaj nieujemny
- jeśli aktualna wartość jest większa od zera, zmniejszyć
- jeżeli bieżąca wartość jest równa zero, nic nie robić
- (ujemna wartość bieżąca nie jest obsługiwana)
Nie widzę sposobu. Być może mógłbyś użyć 'java.util.concurrent.Semaphore'? Jest gwarantowane, że zawsze będzie dodatni, a możesz go zmniejszyć za pomocą 'acquire()' lub 'tryAcquire()'. – markspace