Imprementación utilizando semáforos. Para esta implementación del problema se utilizaron cinco semáforos, uno por cada palito. Cuando el programa inicia, crea los semáforos e inicializa a los comensales diciendoles que palito tiene a su derecha y cual a su izquierda, numerados de 0 a N-1, siendo N la cantidad de comensales. Cuando un nuevo Filosofo es creado, éste comienza pensando un tiempo, y se mantiene así hasta poder obtener los palitos que le corresponde. Eso hace que como mínimo esté pensando entre 2 y 5 segundos (es un rango aleatoreo) y se quede en ese estado hasta poder empezar a comer. La obtensión de palitos no es simultánea, es decir, primero trata de agarrar el que tiene a su derecha (esperando que sea liberado en caso de estar en uso) y luego obtiene el izquierdo. Recién cuando tiene ambos palitos comienza a comer un tiempo aleatoreo de tiempo, y luego libera los palitos. NOTA MIA : cuando agarro el palido derecho, y no puedo agarrar el izquierdo se sigue considerando que estoy pensando ??? o estoy "en tramite de comer :)" Eso no me queda claro si esta bien, pero calculo que si :P. ESTE TEXTO HAY QUE BORRARLO DE ACA :) Cuando un comensal ha podido comer cantidad suficiente de veces (especificada por parámetro cuando se ejecuta el programa) el thread "muerte" y el programa finaliza cuando todos los filosofos han completado su cena.