Programación concurrente en Java: colaboración entre hilos mediante wait/notify y Condition
Introducción
En la programación concurrente, la sincronización es fundamental para evitar condiciones de carera. Sin embargo, en muchos escenarios reales se requiere colaboración entre hilos. Un ejemplo clásico es el modelo productor-consumidor: cuando la cola está llena, el productor debe esperar a que haya espacio disponible, liberando el acc ...
Publicado el 7-15 04:54
Programación Concurrente en Python: Bloqueos, Sincronización y Semáforos
Conceptos Fundamentales
①Concurrencia: Capacidad de un sistema para procesar múltiples tareas durante un período de tiempo ②Paralelismo: Capacidad de un sistema para prcoesar múltiples tareas simultáneamente ③Síncrono: Cuando un proceso encuentra una operación de E/S (esperando datos externos), se detiene y no continúa su ejecución. ④Asíncrono: ...
Publicado el 7-11 01:35
Bloques de Código Sincronizado en Java
Para comprender mejor los bloques de código sincronizado, primero analizaremos dos conjuntos de código funcionalmente similares sin sincronización y sus resultados de ejecución en diferentes estados. Veamos el primer conjunto:
package com.ejemplos.sincronizacion;
public class DemoSincronizacion {
public static void main(String[] args) {
...
Publicado el 7-8 02:07
CountDownLatch y CyclicBarrier: Sincronización de hilos en sistemas de reconciliación
En un sistema de reconciliación para pedidos en línea, el objetivo es verificar discrepancias entre órdenes de compra y envíos. El flujo actual involucra consultar una base de datos de órdenes, luego una de envíos, comparar ambas y almacenar diferencias. Inicialmente, este proceso se ejecuta de forma secuencial en un solo hilo, lo que puede res ...
Publicado el 7-4 01:25
Fundamentos de Hilos en Java
La concurrencia en Java se maneja principalmente a través de su API de Hilos (Threads), que permite la ejecución simultánea de múltiples tareas. Esto optimiza el uso de la CPU y mejora el rendimiento general de las aplicaciones.
Conceptos Clave
Procesos vs. Hilos
Proceso: Unidad de asignación de recursos del sistema operativo.
Hilo: Unidad de ...
Publicado el 6-29 05:59
Multithreading en Java
Conceptos de Procesos e Hilos
La mayoría de los sistemas operativos soportan el modelo de procesos. Una tarea generalmente se asocia a un proceso. Las características principales de un proceso incluyen:
Ser independientes con recursos dedicados.
Poseer un ciclo de vida y estados específicos.
Permitir la ejecución concurrente en un procesador ú ...
Publicado el 6-21 19:55
Conceptos de Hilos y Procesos en Java
Definición de Hilos y Procesos
Un proceso es una unidad independiente en el sistema operativo para la asignación de recursos y planificación. Representa la ejecución de un programa con un conjunto de datos, con su propio espacio de direcciones que incluye secciones de texto, datos y pila, sin compartir memoria con otros procesos.
Un hilo es una ...
Publicado el 6-16 20:47
Métodos para Crear Hilos en Java
Formas de Instanciar Procesos Concurrentes
============
Extendiendo la clase Thread y modificando el método ejecutar()
Implementando la interfaz Runnable
Implementando la interfaz Callible
Clases anónimas y expresiones lambda
Grupos de hilos
Métodos asíncronos en Spring
Temporizador (java.util.Timer)
A continuación se detal ...
Publicado el 6-11 03:44
Patrón de Doble Verificación (DCL) y su Solución
El patrón de Doble Verificación Bloqueada (o DCL por sus siglas en inglés) es una implementación errónea que intenta optimizar la inicialización perezosa de instancias únicas (singletons) para evitar la sobrecarga de sincronización en cada acceso. Una implementación correcta, aunque sincrónica, sería:
public class FabricaCorrecta {
private s ...
Publicado el 6-9 05:08
Programación Multihilo en Java
Introducción a los Hilos:
Un hilo es una vía de ejecución independiente
Los programas en ejecución tienen muchos procesos en segundo plano como el hilo principal, young.gc, full.gc()
main es el hilo principal, punto de entrada del sistema, utilizado para ejecutar todo el programa
En un proceso, si se abren múltiples hilos, la ejecución de los ...
Publicado el 6-7 02:33