¿Cuál es el uso exacto de las clases en el paquete java.util.concurrent.atomic en Java?
Frecuentes
Visto 3,543 veces
10
Soy relativamente nuevo java. Estoy tratando de entender cuál es el uso de las clases en el paquete:
java.util.concurrente.atomic
Traté de entender el javaDoc para este paquete para entenderlo. Pero realmente no podría tener ningún sentido cuando debo usar estas clases. ¿Alguien puede dar ejemplos y más descripciones en palabras simples? gracias
1 Respuestas
14
Considere que 10 subprocesos están incrementando int i (inicializado en 0) y generando el valor de la consola. Puedes obtener algo como esto:
1
2
2
3
3
5
6
6
8
10
AtomicInteger, por ejemplo, asegura que cada subproceso pueda incrementar o disminuir el valor atómicamente, asegurando que la operación de escritura ocurra de manera sincronizada, y para 10 subprocesos, la salida siempre sería:
1
2
3
4
5
6
7
8
9
10
Respondido el 10 de Septiembre de 12 a las 22:09
¿Por qué saltas del 3 al 5 y del 6 al 8 en tu primer ejemplo? ¿No deberían 2 subprocesos leer un valor al mismo tiempo y escribir el mismo valor? - Paul
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java concurrency atomic java.util.concurrent or haz tu propia pregunta.
¿Qué no pudiste entender? - SLaks
"prevenir la interferencia de subprocesos sin recurrir a la sincronización" docs.oracle.com/javase/tutorial/essential/concurrency/… - km1
amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601 - SLaks
Lea los Trails, no los JavaDocs docs.oracle.com/javase/tutorial/essential/concurrency/… - LanguagesNamedAfterCofee
La palabra clave es "programación sin bloqueo" - Sergey Kalinichenko