Skip to content

PedroH183/car-management-thread-app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problema da Ponte Estreita

Uma aplicação do uso de threads em Java, usando Swing como interface gráfica.

Foto

Situação Problema

Carros vindos do leste e carros vindos do oeste chegam a uma ponte com só uma pista. Os que viajam no mesmo sentido podem atravessar a ponte ao mesmo tempo, mas os que viajam em sentido oposto não podem.

Portanto, um carro não pode atravessar a ponte quando houver carros atravessando a ponte no sentido contrário.

Modele os carros como threads e use semáforos para sincronização entre threads. Os carros devem sair da ponte na mesma ordem em que entraram (não é possível ultrapassagem, pois a ponte só tem uma pista).

Restrições

Era necessário que toda a lógica de movimento de um carro estivesse dentro da sua thread, logo não foi usada animações do Swing para animar os carros, pois isso usaria outra thread.

Solução

Tomamos como base um dos problemas clássicos, Escritores e Leitores, e o modificamos para permitir que vários carros de apenas um lado pudessem agir por vez.

Uso

Executar o car.jar executavél já presente no repositório ou criar um novo usando o script build.sh.

$ java -jar car.jar

About

A multithreaded game to test Semaphore applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.2%
  • Shell 0.8%