CodeGym
AI Academy
Promoción
CodeGym University
Aprendizaje
Cursos
Tareas
Encuestas & Cuestionarios
Juegos
Ayuda
Horario
Comunidad
Usuarios
Foro
Chat
Artículos
Historias de éxito
Actividad
Reseñas
Suscripciones
Tema claro

Lecciones

  • Reseñas
  • Sobre nosotros
Comenzar
Comenzar a aprender
Comienza a aprender ahora
  • Mi progreso
  • Cursos
  • Universidad
  • Mapa de misiones
  • Lecciones
  • Recursos compartidos y sincronización: problemas de acceso

    JAVA 25 SELF
    Nivel 52,Lección 0
    Esta lección trata de qué es un recurso compartido en aplicaciones multihilo, por qué surgen condiciones de carrera (race condition) y «actualizaciones perdidas», y cómo proteger los datos con synchronized. Veremos técnicas básicas de sincronización (métodos y bloques), hablaremos de herramientas modernas de java.util.concurrent ( Lock, ReentrantLock, Semaphore y otros), veremos ejemplos prácticos con el incremento de un contador y errores típicos (no atomicidad de i ++, objeto de bloqueo incorrecto, mitos sobre volatile).
    Disponible
  • synchronized, volatile: sintaxis y uso

    JAVA 25 SELF
    Nivel 52,Lección 1
    Lección práctica sobre concurrencia: analizamos cómo funciona la palabra clave synchronized (bloques y métodos, el monitor del objeto y el bloqueo a nivel de clase ClassName.class), en qué se diferencia la visibilidad de los cambios mediante volatile de la atomicidad de las operaciones, por qué las banderas boolean conviene declararlas volatile, y por qué el incremento count ++ requiere sincronización. Veremos cuándo elegir synchronized y cuándo — volatile, y analizaremos errores típicos.
    Disponible
  • ReentrantLock y ReadWriteLock: diferencias y ejemplos

    JAVA 25 SELF
    Nivel 52,Lección 2
    Comparación práctica de la sincronización clásica mediante synchronized con primitivas más flexibles del paquete java.util.concurrent.locks: ReentrantLock y ReadWriteLock. Veremos cómo gestionar los bloqueos de forma explícita ( lock()/ unlock(), tryLock() con tiempo de espera), cómo escalar la lectura con ReentrantReadWriteLock, qué es la «equidad» (modo fair), dónde es apropiada cada herramienta y qué errores aparecen con más frecuencia.
    Disponible
  • Mutex y semáforos: sintaxis y tareas

    JAVA 25 SELF
    Nivel 52,Lección 3
    En esta lección veremos los primitivos clave de sincronización en Java: cómo proteger secciones críticas con synchronized y la clase ReentrantLock (métodos lock()/ unlock(), construcción try- finally), así como cómo limitar el paralelismo mediante Semaphore (métodos acquire()/ release()). Compararemos mutex y semáforo en una tabla, veremos casos prácticos (banco, servidor con límite de conexiones) y errores típicos que conducen a deadlock y a pérdidas de rendimiento.
    Disponible
  • Análisis de errores típicos de sincronización

    JAVA 25 SELF
    Nivel 52,Lección 4
    Análisis práctico de errores frecuentes de concurrencia en Java: olvidar llamar a unlock()/ release() en ReentrantLock y Semaphore (se soluciona con try- finally), elegir un monitor incorrecto para synchronized, interbloqueos (deadlock) y el orden de adquisición de bloqueos, sincronización excesiva, así como los límites de aplicabilidad de volatile y la sustitución por AtomicInteger. Ejemplos, consejos y analogías claras — para que el código no «se quede bloqueado».
    Disponible
Aprender
  • Registro
  • Curso de Java
  • Ayuda con tareas
  • Precios
  • Sintaxis de Java
Comunidad
  • Usuarios
  • Artículos
  • Foro
  • Chat
  • Historias de éxito
  • Actividad
  • Programa de afiliados
Empresa
  • Acerca de nosotros
  • Contactos
  • Reseñas
  • Sala de prensa
  • CodeGym para EDU
  • Preguntas frecuentes
  • Soporte
CodeGymCodeGym es un curso en línea para aprender programación Java desde cero. Este curso es una forma perfecta de dominar Java para principiantes. Contiene más de 1.200 tareas con verificación instantánea y un conjunto esencial de teoría sobre los fundamentos de Java. Para ayudarte a tener éxito en la formación, hemos implementado una serie de funciones motivacionales: cuestionarios, proyectos de programación, contenido sobre aprendizaje eficiente y contenidos sobre la carrera profesional de un desarrollador Java.
Síguenos
Idioma de la interfaz
English Deutsch
Español
हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Los programadores se hacen, no nacen" © 2026 CodeGym
MastercardVisa
"Los programadores se hacen, no nacen" © 2026 CodeGym