2012-09-10 13 views
7

Soy relativamente nuevo java. Estoy tratando de entender lo que son el uso de las clases del paquete:¿Cuál es el uso exacto de las clases en el paquete java.util.concurrent.atomic en Java?

java.util.concurrent.atomic

traté de entender el Javadoc para este paquete de obtener una comprensión de la misma. Pero no podría tener ningún sentido cuando debería usar estas clases. ¿Alguien puede dar ejemplos y más descripciones en palabras simples? thx

+5

¿Qué no entendiste? – SLaks

+0

"evitar la interferencia del hilo sin recurrir a la sincronización" http://docs.oracle.com/javase/tutorial/essential/concurrency/atomicvars.html – km1

+1

http://www.amazon.com/Java-Concurrency-Practice-Brian- Goetz/dp/0321349601 – SLaks

Respuesta

11

Considere la posibilidad de que 10 subprocesos se incrementen int i (inicializados en 0) y generen el valor de la consola. Usted puede obtener algo como esto:

1 
2 
2 
3 
3 
5 
6 
6 
8 
10 

AtomicInteger, por ejemplo, asegura que cada hilo puede aumentar o disminuir el valor atómicamente, asegurando que la operación de escritura ocurre de manera sincronizada, y por 10 hilos, el La salida siempre sería:

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
+0

¿Por qué se salta de 3 a 5, y de 6 a 8 en su primer ejemplo? ¿No deberían 2 hilos leer un valor al mismo tiempo y escribir el mismo valor? – Pavel

Cuestiones relacionadas