Skip to content

Instantly share code, notes, and snippets.

@nunomazer
Created May 10, 2011 19:32
Show Gist options
  • Save nunomazer/965203 to your computer and use it in GitHub Desktop.
Save nunomazer/965203 to your computer and use it in GitHub Desktop.
Exemplo de relógio utilizando threads em Dev-C
#include
#include
#include
#include
int executando;
// variavel global que controlar se o aplicativo esta executando
// ela garantira o encerramento das threads abertas quando seu valor for zero
void relogio () {
// o tipo long comporta numeros nao fracionados
// com valor superior (longo) ao tipo
int long inicio = time(NULL);
long agora;
while (executando != 0) {
agora = time(NULL);
// posiciona o relogio na coluna 1 linha 1
// a tela de texto tem 80 colunas por cerca de 23 linhas
gotoxy(1,1);
printf ("Tempo: %d\n", agora - inicio);
// este comando segura a execucao do codigo pelo tempo em milisegundos passado por parametro
// neste caso seguramos em 1 segundo
_sleep(1000);
}
printf ("Relogio parado!\n\n");
}
int main(int argc, char *argv[]){
int x;
executando = 1;
// inicia a thread que executara a funcao relogio em paralelo com o restante da aplicacao
_beginthread(relogio, 0, NULL);
for (x=0; x<10000; x++) {
// posiciona o texto na coluna 1 linha 5
// a tela de texto tem 80 colunas por cerca de 23 linhas
gotoxy(1,5);
printf ("For do MAIN %d\n", x);
}
for (x=0; x // posiciona o relogio na coluna 1 linha 10
// a tela de texto tem 80 colunas por cerca de 23 linhas
gotoxy(1,10);
printf ("Novo For do MAIN %d\n", x);
}
// setando o valor desta variavel como 0 garantimos que o while do relogio para a execucao
executando = 0;
system("PAUSE");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment