Este repositório reúne algumas das atividades desenvolvidos ao longo da disciplina de DAD. O foco principal está na exploração de conceitos fundamentais como concorrência, threads, condições de corrida e sincronização em ambientes distribuídos ou concorrentes.
O repositório inclui:
- Demonstrações práticas.
- Exemplos de condições de corrida (race conditions) e como evitá-las utilizando mecanismos de sincronização, como mutexes e semáforos.
- Resolução de exercícios clássicos sobre concorrência, incluindo:
- Jantar dos Filósofos – problema clássico que ilustra a complexidade do controle de acesso a recursos compartilhados.
- Outros exercícios abordando:
- Exclusão mútua
- Deadlocks
- Sincronização entre threads
- Para rodar os exemplos, basta ter o Java instalado (de preferência versão 11 ou superior) e uma IDE configurada (como IntelliJ, Eclipse, VS Code com extensão para Java, etc.).