Simulação concorrente do clássico problema dos filósofos jantando. Cada filósofo é executado em uma thread e precisa compartilhar dois garfos com os vizinhos sem causar deadlock.
- Uso de
RunnableeThreadpara representar concorrência. - Uso de
ReentrantLockpara proteger os garfos. - Uso de
SemaphorecomN - 1permissões para reduzir a possibilidade de espera circular. - Atualização do estado dos filósofos e dos garfos no console.
Pré-requisito: JDK instalado e disponível no PATH.
git clone https://github.com/victormalvao/Jantar-dos-filosofosBSI.git
cd Jantar-dos-filosofosBSI
javac -d out *.java
java -cp out JantarDosFilosofosA simulação continua em execução para representar os ciclos de pensamento e alimentação. Use Ctrl+C para encerrá-la.
JantarDosFilosofos.java # Inicialização da simulação
Filosofo.java # Thread e regras de acesso aos garfos
Mesa.java # Visualização do estado no console
Projeto acadêmico de estudo de concorrência e sincronização. Não possui build automatizado nem testes automatizados; os parâmetros da simulação estão definidos diretamente no código.