miércoles, 3 de diciembre de 2014

Cena de filósofos

Hola

Después de ver el tema de Thread safe, vamos a aplicar nuestro conocimientos para resolver un problema típico que el la cena de los filósofos.

El enunciado es el siguiente:

Cinco filósofos alrededor de una mesa pasan su vida comiendo o pensando. Cada filósofo tiene un plato de arroz y un palillo a la izquierda de su plato. Cuando un filósofo quiere comer, cogerá los dos palillos de cada lado del plato y comerá.





Si analizamos el problema podemos sacar las siguiente conclusión, solo pueden estar comiendo 2 filósofos a la vez:


  • El filósofo 0 puede comer con el filósofo 2 o con el 3.
  • El filósofo 1 puede comer con el filósofo 3 o con el 4.
  • El filósofo 2 puede comer con el filósofo 4 o con el 0.
  • El filósofo 3 puede comer con el filósofo 0 o con el 1.
  • El filósofo 4 puede comer con el filósofo 1 o con el 2.
 Con estas premisas he resulto el problema con la palabra reservada synchronized y clase Semaphore, como siempre el código esta subido a mi cuenta de github


No hay comentarios:

Publicar un comentario