1 Resolución utilizando lockeo.
3 En esta versión se utilizan 2 clases, la clase palitos y la clase filosofos,
4 donde la primera tiene métodos para tomar y soltar los palitos los cuales son
5 con con lockeo exclusivo, es decir, que solo un proceso podra acceder al método
8 Cabe remarcar que la clase palitos posee 3 métodos:
9 tomar(), dejar() y free(), los 3 con lockeo. Esto es importante pues cada
10 proceso consulta el estado del palito con el método free() para verificar si el
11 palito puede ser tomado, de ser así, lo toma y prueba si puede tomar el otro.
12 Si este método no fuera exclusivo podría retornar un estado falso del palito y
13 dos comensales podrían comer con el mismo palito simultaneamente, es por eso que
14 al tomar un palito, el filósofo registra que lo tiene tomado, y luego si pudo
15 tomar ambos palitos está en condiciones de comer (un tiempo aleatorio).
16 Luego suelta los palitos y se dedica a pensar nuevanmente por un tiempo aleatorio.