La clase AtomicIntegerFieldUpdate en java puede actualizar una variable de forma atómica
Existen las siguientes restricciones en esta variable:
- El actualizador debe ser de tipo int, no su tipo de empaquetado Integer;
- El actualizador debe actualizar la variable modificada volátil para garantizar que sea inmediatamente visible cuando la variable se comparta entre subprocesos;
- Las variables no pueden ser modificadas por estática, deben ser variables de instancia. Debido a que el método Unsafe.objectFieldOffset () no admite variables estáticas (las operaciones CAS son esencialmente asignaciones directas a través del desplazamiento de la instancia del objeto);
- El actualizador solo puede modificar las variables dentro de su rango visible, porque el actualizador obtiene esta variable a través de la reflexión, y se reportará un error si la variable no es visible;