Pseudo-código del esquema productor-consumidor¶
struct semaf huecos, items;
tipo_cerrojo mutex;
ini_semaforo(huecos, N);
ini_semaforo(items, 0);
Productor()
{
struct elemento elem;
while (1) {
producir_elemento(&elem);
bajar(huecos);
lock(mutex);
insertar(elem);
unlock(mutex);
subir(items);
}
}
Consumidor()
{
struct elemento elem;
while (1) {
bajar(items);
lock(mutex);
retirar(&elem);
unlock(mutex);
subir(huecos);
consumir_elemento(elem);
}
}