Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <windows.h>
- unsigned int sincronizadorInicial;
- CRITICAL_SECTION regulador;
- int quantidade = 15;
- int progresso = 45;
- int intervalo = 100;
- int esperaInicial = 750;
- void zThread(int tId)
- {
- WaitForSingleObject(sincronizadorInicial, -1);
- COORD p;
- p.Y = tId;
- int i;
- for(i=0;i<progresso;i++)
- {
- p.X = i;
- EnterCriticalSection(®ulador);
- {
- SetConsoleCursorPosition(GetStdHandle(-11), p);
- printf("#", i);
- }
- LeaveCriticalSection(®ulador);
- Sleep(intervalo);
- }
- }
- int main()
- {
- AllocConsole();
- int ThreadIds;
- InitializeCriticalSection(®ulador);
- sincronizadorInicial = CreateSemaphore(0, 0, quantidade, 0);
- for(ThreadIds=0;ThreadIds<quantidade;ThreadIds++)
- {
- CreateThread(0, 0, zThread, ThreadIds, 0, 0);
- }
- int a;
- for(a=0;a<4;a++)
- {
- Sleep(esperaInicial);
- printf("%d...\n", a+1);
- }
- ReleaseSemaphore(sincronizadorInicial, quantidade, 0);
- while(1)
- Sleep(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement