Skip to content

Maykon-JDS/coin-flip-multi-thread

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coin Flip Multi Thread

Foto de Capa

licence mit Conventional Commits

Sumário

Introdução

Este projeto implementa um coin flip (cara ou coroa) utilizando propositalmente uma condição de corrida (race condition) no contexto de programação multithread com OpenMP. O objetivo é demonstrar, de forma prática e visual, como a concorrência não controlada pode afetar o resultado de um programa.

Para fins didáticos, o programa executa duas threads que escrevem em uma mesma variável compartilhada sem qualquer sincronização, criando assim um cenário realista para estudo de problemas de concorrência. Além disso, o projeto é empacotado e compilado dentro de um container Docker, utilizando docker-compose para simplificar o build e gerar um executável compatível com Windows.

Tecnologias Usadas

C++  OpenMP  Docker  Docker Compose  MinGW-w64 

Como Executar o Projeto

Este projeto utiliza Docker e Docker Compose para compilar o código C++ com suporte a OpenMP e gerar um executável Windows (.exe) que pode ser executado localmente.

Pré-requisitos

Antes de iniciar, verifique se você possui instalados no seu computador:

Passos para compilar o projeto

  1. Clonar o repositório
   git clone https://github.com/Maykon-JDS/coin-flip-multi-thread.git
   cd coin-flip-multi-thread
  1. Construir a imagem Docker e compilar
docker compose build
  1. Gerar o executável
docker compose run --rm builder

O executável será gerado na pasta:

./build/main.exe

Executando o programa no Windows

Após o build, basta abrir um terminal (CMD ou PowerShell) no Windows e executar:

.\build\main.exe

💡 Como o projeto contém condição de corrida intencional, os resultados podem variar a cada execução, mostrando ora par, ora impar.

Observações

  • Este projeto foi projetado para fins educacionais, simulando condições de corrida no processamento multi-thread.
  • É necessário rodar o executável no Windows ou com um emulador compatível com .exe.

Licença

Este projeto está sob a Licença MIT. Consulte o arquivo LICENSE.md para obter mais detalhes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published