¿Qué es la operación atómica? ¿Qué es la operación atómica en Java?
"La operación atómica no necesita estar sincronizada". La llamada operación atómica se refiere a una operación que no será interrumpida por el mecanismo de programación de subprocesos una vez que se inicie esta operación y se ejecutará hasta el final; sin interrupción. Habrá algún cambio de contexto;
Las operaciones atómicas se utilizan en la gestión general de transacciones en Java.
El análisis detallado es el siguiente:
Las operaciones atómicas pueden ser de un paso o de varios pasos, pero su orden no se puede alterar, ni se pueden cortar y ejecutar solo parte del mismo. , tratar toda la operación como un todo es la característica principal de la atomicidad;
Beneficios de usar operaciones atómicas:
⑴.?Perspectiva de rendimiento: todo lo que se ejecuta varias veces El tiempo consumido es mucho menos que el tiempo consumido por el hilo desde la suspensión hasta la reanudación, por lo que el rendimiento de las operaciones CAS sin bloqueo es mucho mayor que el de los bloqueos de sincronización;
⑵.?Requisitos comerciales: el negocio mismo En términos De acuerdo con la demanda, el mecanismo sin bloqueo en sí puede satisfacer la mayoría de nuestras necesidades y su rendimiento también se puede mejorar enormemente.
Ejemplo: la herramienta de control de versiones que utilizamos es muy similar. Si usamos bloqueos para la sincronización, en realidad significa que solo una persona puede modificar el archivo al mismo tiempo y otras no pueden operarlo al mismo tiempo. En este momento, si realmente nos encontramos con una situación así en la vida, definitivamente nos sentiremos muy incómodos, pero en realidad no somos así. Todos podemos modificar este archivo, pero quien lo envíe temprano tendrá éxito en su código. En el servidor de control de versiones enviado, este paso en realidad corresponde a una operación atómica. Sin embargo, la persona que realiza la operación a menudo falla en el envío debido a conflictos. En este momento, debe actualizar el código, modificarlo nuevamente y volver a enviarlo.