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

 
 
 

Languages