Skip to content

O código em Java resolve o problema clássico do "Jantar dos Filósofos". Cinco filósofos alternam entre pensar e comer em uma mesa redonda. Cada filósofo, representado por uma thread, requer dois garfos adjacentes para comer.

Notifications You must be signed in to change notification settings

TIOSAMBR/JantarDosFilosofos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

JantarDosFilosofos

Descrição do Código - Jantar dos Filósofos em Java com Threads

O código implementa uma solução para o clássico problema do "Jantar dos Filósofos" em Java, utilizando Threads e locks (ReentrantLock). O problema envolve cinco filósofos sentados à mesa, alternando entre pensar e comer. Cada filósofo precisa de dois garfos adjacentes para comer. O código cria uma representação dessa situação, onde cada filósofo é uma thread, e os garfos são protegidos por locks para evitar condições de corrida.

1. Classe Filosofo:

Atributos: id: Identificador único do filósofo. garfoEsquerdo: Lock representando o garfo à esquerda do filósofo. garfoDireito: Lock representando o garfo à direita do filósofo. Método pensar():

Simula o ato de pensar por um período de tempo (1 segundo). Método comer():

Simula o ato de comer por um período de tempo (1 segundo). Método run():

Executa a lógica do filósofo em um loop infinito: Pensar. Tentar pegar os garfos à esquerda e à direita. Comer. Liberar os garfos.

2. Classe JantarDosFilosofos:

Método main(): Inicializa o número de filósofos e um array de locks representando os garfos. Inicializa as threads dos filósofos e os seus respectivos garfos, criando uma mesa redonda.

3. Comentários Adicionados:

Comentários foram incluídos para elucidar as etapas críticas do código. Identificação de ações como pensar, pegar garfos, comer e liberar garfos. Inicialização dos garfos e das threads dos filósofos. Este código Java utiliza o conceito de locks (ReentrantLock) para garantir exclusão mútua e resolver o problema clássico do Jantar dos Filósofos, onde os filósofos alternam entre ações de pensar e comer, evitando impasses ao acessar os garfos compartilhados.

About

O código em Java resolve o problema clássico do "Jantar dos Filósofos". Cinco filósofos alternam entre pensar e comer em uma mesa redonda. Cada filósofo, representado por uma thread, requer dois garfos adjacentes para comer.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages