Pular para conteúdo

Exercícios: Aula 13 - Concorrência Segura 🧵

🟢 Básico

  1. Spawn de Thread: Crie um programa que faça o spawn de uma thread que imprima números de 1 a 5, enquanto a thread principal imprime de 6 a 10. Use o método join para garantir que ambas terminem antes do programa fechar.
  2. MPSC: Qual o significado da sigla mpsc e por que ela é importante para a segurança de memória no Rust?

🟡 Intermediário

  1. Comunicação via Canais: Crie um programa onde uma thread secundária calcula o fatorial de um número e envia o resultado para a thread principal através de um canal (channel).
  2. Estado Compartilhado: Use Arc e Mutex para incrementar um contador compartilhado entre 10 threads diferentes. Imprima o valor final no main.

🔴 Desafio

5. Simulador de Corridas: Crie um programa onde 3 threads "correm" (cada uma imprime seu progresso em intervalos de tempo aleatórios usando thread::sleep). Use um canal para avisar a thread principal quando cada thread cruzar a linha de chegada. A thread principal deve anunciar o 1º, 2º e 3º lugares.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Spawn de Thread **Resolução e Implementação:**
// Estrutura de implementação recomendada para Spawn de Thread
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Concorrência Segura**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: MPSC **Resposta Comentada:** - **Fundamentação:** No contexto de **Concorrência Segura**, o conceito abordado (MPSC) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Comunicação via Canais **Resolução e Implementação:**
// Estrutura de implementação recomendada para Comunicação via Canais
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Concorrência Segura**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Estado Compartilhado **Resposta Comentada:** - **Fundamentação:** No contexto de **Concorrência Segura**, o conceito abordado (Estado Compartilhado) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Simulador de Corridas **Resolução e Implementação:**
// Estrutura de implementação recomendada para Simulador de Corridas
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Concorrência Segura**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.