0Pricing
Java Academy · Lección

Variables atómicas y colecciones concurrentes

Aprenda a usar variables atómicas y colecciones concurrentes para garantizar la seguridad entre hilos.

Variables atómicas y colecciones concurrentes es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.

Introducción

Las variables atómicas y las colecciones concurrentes simplifican la programación segura para hilos.

AtomicInteger

AtomicInteger ofrece operaciones atómicas de incremento, decremento y compare-and-set.

Código: AtomicInteger

AtomicInteger garantiza que las actualizaciones sean seguras para los hilos sin bloqueos explícitos.

import java.util.concurrent.atomic.*;public class Main {
  public static void main(String[] args) throws Exception {
    AtomicInteger count = new AtomicInteger(0);
    Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) count.incrementAndGet(); });
    Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) count.incrementAndGet(); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println("Count = " + count.get());
  }
}

Colecciones concurrentes

Las colecciones concurrentes, como ConcurrentHashMap o CopyOnWriteArrayList, gestionan de forma segura el acceso simultáneo.

Código: ConcurrentHashMap

ConcurrentHashMap permite realizar escrituras y lecturas simultáneas de forma segura.

import java.util.concurrent.*;public class Main {
  public static void main(String[] args) throws Exception {
    ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
    Thread t1 = new Thread(() -> { map.put("A", 1); });
    Thread t2 = new Thread(() -> { map.put("B", 2); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println(map);
  }
}

Código: CopyOnWriteArrayList

CopyOnWriteArrayList evita ConcurrentModificationException durante la iteración.

import java.util.concurrent.*;public class Main {
  public static void main(String[] args) {
    CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
    list.add("Hello");
    list.add("World");
    for(String s : list) {
      list.add("Extra"); // safe even during iteration
      System.out.println(s);
    }
  }
}

Comprobación de clases atómicas y concurrentes

Comprobación rápida: ¿Por qué utilizar AtomicInteger en lugar de un int normal con varios hilos?

Repaso

Repaso: Utilice clases atómicas para contadores seguros para los hilos y colecciones concurrentes para estructuras de datos compartidas seguras.

Preguntas frecuentes

¿La lección «Variables atómicas y colecciones concurrentes» es gratis?

Sí — el texto completo de «Variables atómicas y colecciones concurrentes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Variables atómicas y colecciones concurrentes»?

Aprenda a usar variables atómicas y colecciones concurrentes para garantizar la seguridad entre hilos. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «Variables atómicas y colecciones concurrentes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Sincronización y bloqueos
  2. Variables atómicas y colecciones concurrentes
  3. Errores habituales de concurrencia
← Volver a Java Academy