Exemplo código Java de uma possível resolução do problema da "mesa dos filosofos" usando o syncronized. Desenvolvido para a cadeira de Sistemas Operacionais, afim de entender como funcionam as threads dos sistemas operacionais.
O problema do jantar dos filósofos foi formulado e resolvido por Dijkstra em 1959. Cinco filósofos estão sentado em torno de uma mesa circular. Cada filósofo tem um prato de espaguete. O espaguete está tão escorregadio que um filósofo precisa de dois garfos para comê-lo. Entre cada par de pratos está o garfo.
A vida do filósofo consiste em alternar períodos de comer e pensar. Quando um filósofo fica com fome, ele tenta pegar os garfos à sua direita e à sua esquerda, um de cada vez, em qualquer ordem. Se conseguir pegar dois garfos ele comerá durante um determinado tempo e então colocará os garfos na mesa novamente e continuará a pensar.
- Faça um clone desse repositório:
git clone https://github.com/lucaasaragao/ProblemFilosofo.git - Abra sua IDE para rodar programas java
- Execute o projeto