Threads matando a CPU

Pessoal,
Esta aplicação estava consumindo quase 300% da CPU rodando 3 threads numa Raspberry Pi 3.
Apenas para testar troquei o if por um sleep() assim:
O uso da CPU caiu absurdamente.
Eu devo usar sleep() sempre quando uso threads?
Ou seria uma característica da Raspberry / SO ?
abs,
Esta aplicação estava consumindo quase 300% da CPU rodando 3 threads numa Raspberry Pi 3.
- Código: Selecionar todos
pthread_t tid[NUM_THREADS];
int main(int argc, char **argv)
{
(void)pthread_create(&(tid[0]), NULL, &CheckPowerAC , NULL);
while (1)
{
}
return 0;
}
void *CheckPowerAC(void *arg)
{
static _u64Timeout_t Timeout = 0;
while (1)
{
if (GetCurrTime() >= Timeout)
{
/* ... */
}
}
return NULL;
}
Apenas para testar troquei o if por um sleep() assim:
- Código: Selecionar todos
while (1)
{
/* ... */
sleep(10);
}
O uso da CPU caiu absurdamente.
Eu devo usar sleep() sempre quando uso threads?
Ou seria uma característica da Raspberry / SO ?
abs,