Skip to content

galleta/-Java-_Productor_Consumidor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java NetBeans License: GPL v2 Concurrencia

Problema del Productor-Consumidor en Java

Implementación clásica del problema de sincronización entre procesos usando hilos en Java, con solución utilizando:

  • wait()/notify()
  • Semáforos

📚 Explicación del problema

El problema del productor-consumidor (también conocido como bounded-buffer problem) es un ejemplo clásico de sincronización entre procesos múltiples donde:

  • Productor(es): Generan datos y los colocan en un buffer.
  • Consumidor(es): Toman datos del buffer para procesarlos.
  • Buffer compartido: Zona de almacenamiento con capacidad limitada.
flowchart LR
    %% Productor
    P[Productor] -- pone --> B[("Buffer 🔒
    (Sincronizado)")]
    
    %% Múltiples Consumidores
    B -- obtiene --> C1[Consumidor 1]
    B -- obtiene --> C2[Consumidor 2] 
    B -- obtiene --> C3[Consumidor 3]
    
    %% Estilos
    style P fill:#2ecc71,color:white
    style B fill:#3498db,color:white,stroke:#2980b9
Loading

🛠️ Solución implementada

1. Wait/Notify

public synchronized void put(int value) 
{
    while (contenedorlleno) 
    {
        try 
        {
            wait();
        } 
        catch (InterruptedException e) 
        {
            System.err.println("Contenedor: Error en put -> " + e.getMessage());
        }
    }
    contenido = value;
    contenedorlleno = Boolean.TRUE;
    notify();
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages