c sleep how use sleep function c programs
Este tutorial C ++ Sleep irá discutir a função Sleep em C ++ e ver como colocar um thread para dormir. Também aprenderemos sobre as outras funções viz. você dorme:
Qualquer programa de computador que seja um processo, tarefa ou thread pode 'hibernar' ou entrar em um estado inativo por um tempo específico. A execução encontra-se suspensa, por este período de tempo. A execução será retomada quando o intervalo de tempo do sono expirar ou um sinal ou interrupção fizer com que a execução seja retomada.
Para colocar um programa (tarefa, processo ou thread) em suspensão, usamos uma chamada de sistema de suspensão. Uma chamada típica do sistema de sono leva o tempo como o parâmetro que indica quanto tempo o programa precisa para dormir ou permanecer inativo.
=> Verifique a série de treinamento C ++ completa aqui.
Também temos as funções usleep () e thread :: sleep que discutiremos neste tutorial. O tempo fornecido é principalmente em milissegundos, microssegundos ou segundos e, dependendo disso, temos várias funções que podem colocar o programa para dormir.
O que você aprenderá:
- Função Sleep ()
- Função Usleep ()
- Thread Sleep (sleep_for & sleep_until)
- perguntas frequentes
- Conclusão
- Leitura recomendada
Função Sleep ()
A linguagem C ++ não fornece uma função de suspensão própria. No entanto, os arquivos específicos do sistema operacional, como unistd.h para Linux e Windows.h para Windows fornecem essa funcionalidade.
Quando usamos o sistema operacional Linux ou UNIX, precisamos incluir o arquivo de cabeçalho “unistd.h” em nosso programa para usar o dorme () função.
Ao usar o sistema operacional Windows, temos que incluir o cabeçalho “Windows.h” para usar a função sleep (). Portanto, para escrever um programa de plataforma cruzada, podemos ter o código conforme mostrado abaixo para que qualquer um dos cabeçalhos seja usado.
#ifdef _WIN32 #include #else #include #endif
A função dormir é descrita abaixo:
Protótipo de função:
sono sem sinal (segundos sem sinal);
Parâmetros:
segundos => Período de tempo em segundos durante o qual a execução do programa é suspensa
Valor de retorno:
0 => Se o sono retornar quando o tempo solicitado tiver decorrido.
Se o sono for interrompido por um sinal, uma quantidade não dormida (período de tempo solicitado especificado menos o tempo real decorrido) é retornado.
Descrição:
A função sleep () faz com que o programa ou processo no qual é chamado suspenda sua execução temporariamente por um período de tempo em segundos especificado pelo parâmetro da função. A execução é suspensa até que o tempo solicitado seja decorrido ou um sinal ou uma interrupção seja entregue à função.
No entanto, se o sistema programou qualquer outra atividade, o tempo de suspensão pode ser mais longo.
A seguir, está um programa C ++ que usa a função sleep entre duas instruções cout.
html5 css3 entrevista perguntas e respostas
#ifdef _WIN32 #include #else #include #endif #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); sleep(10); cout << 'World'; cout << endl; return 0; }
Resultado:
Olá Mundo
No programa acima, damos um comando de suspensão com período de 10 segundos após a impressão de “Hello”. O compilador espera 10 segundos após imprimir “Hello” e então imprime o “World”.
Observação: Os leitores devem executar este programa para realmente entender o funcionamento do comando sleep
Função Usleep ()
O cabeçalho “unistd.h” fornece ainda outra função “usleep ()” que pode suspender a execução de um programa por um período de tempo especificado. O funcionamento é semelhante à função sleep () já descrita.
Protótipo de função: int usleep (useconds_t useconds);
Parâmetros: useconds => Número de microssegundos para os quais a execução é suspensa
Valor de retorno:
0 => Usleep voltou com sucesso.
-1 & errno => Falha na função.
Descrição:
A função usleep () suspende a execução da chamada do thread por usegundos, microssegundos ou até que o sinal seja entregue ao thread que interrompe a execução.
A granularidade dos valores do temporizador usados na função usleep pode ser específica da implementação. Se precisarmos de uma granularidade mais fina do que aquela especificada pela implementação, o valor real do cronômetro será arredondado para o próximo valor suportado.
A seguir, é fornecido um exemplo para demonstrar a função usleep ().
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Resultado:
Olá Mundo
Conforme mostrado na saída acima, especificamos o período de tempo como 10000 microssegundos para a função usleep e, assim como o programa anterior usando a função sleep, imprimimos a string “Hello World”.
Thread Sleep (sleep_for & sleep_until)
C ++ 11 fornece funções específicas para colocar um thread em espera.
Existem duas funções:
Std :: this_thread :: sleep_for
Protótipo de função:
template void sleep_for( const std::chrono::duration& sleep_duration );
Parâmetros: sleep_duration => Duração do tempo para dormir
Valor de retorno: Nenhum
Descrição: A função sleep_for () é definida no cabeçalho. A função sleep_for () bloqueia a execução do thread atual pelo menos pelo tempo especificado, ou seja, sleep_duration.
Esta função pode ser bloqueada por um período maior do que um tempo especificado devido a atividades de agendamento ou atrasos de contenção de recursos.
Um exemplo C ++ demonstrando o uso de sleep_for é fornecido abaixo:
#include #include #include using namespace std; int main() { cout << 'Hello I'm waiting....' << endl; this_thread::sleep_for(chrono::milliseconds(20000) ); cout << 'Waited 20000 ms
'; }
Resultado:
Olá, estou esperando ...
Esperou 2.000 ms
No programa acima, temos uma duração de sono especificada de 20000 milissegundos. Isso significa que o segmento será bloqueado por 20000 milissegundos antes de retomar a operação.
Std :: this_thread :: sleep_until
Protótipo de função:
template void sleep_until( const std::chrono::time_point& sleep_time );
Parâmetros: sleep_time => Tempo de duração até o qual o thread deve ser bloqueado.
Valor de retorno: Nenhum
Descrição: Esta função é definida no cabeçalho. A função sleep_until () bloqueia a execução de um thread até que o sleep_time tenha decorrido. Como as outras funções, essa função também pode ser bloqueada por um período maior do que um tempo especificado devido a atividades de agendamento ou atrasos de contenção de recursos.
Um programa C ++ para a função sleep_until é fornecido abaixo.
#include #include #include using namespace std; void current_time_point(chrono::system_clock::time_point timePt) { time_t timeStamp = chrono::system_clock::to_time_t(timePt); cout << std::ctime(&timeStamp) << endl; } void threadFunc() { cout<<'Current Time :: '; current_time_point(chrono::system_clock::now()); chrono::system_clock::time_point timePt = chrono::system_clock::now() + chrono::seconds(60); cout << 'Sleeping Until :: '; current_time_point(timePt); this_thread::sleep_until(timePt); cout<<'Woke up...Current Time :: '; current_time_point(chrono::system_clock::now()); } int main() { std::thread th(&threadFunc); th.join(); return 0; }
Resultado:
Hora Atual: Qui, 19 de setembro, 12:52:01 2019
Dormindo até :: Qui, 19 de setembro, 12:53:01 2019
Acordei… Hora Atual :: Qui 19 Set 12:53:01 2019
Neste programa, fazemos o encadeamento hibernar por 60 segundos, ou seja, 1 minuto. Assim que 1 minuto estiver concluído; thread é ativado e imprime a hora atual.
perguntas frequentes
P # 1) O que sleep () faz em C ++?
Responda: A função Sleep () suspende a execução do programa por um período de tempo especificado. Este período de tempo é especificado como um argumento para a função sleep ().
P # 2) Qual é o arquivo de cabeçalho para suspensão em C ++?
Responda: O cabeçalho para suspensão é “unistd.h” para o sistema operacional LINUX / UNIX e “Windows.h” para o sistema operacional Windows. Para thread sleep que usa as funções ‘sleep_for’ e ‘sleep_until’, o cabeçalho é usado.
Q # 3) Qual é o uso de #include Unistd H?
Responda: O cabeçalho ‘Unistd.h’ é o cabeçalho que define a função sleep () para suspender a execução do programa.
Conclusão
Neste tutorial para a função sleep (), discutimos a função sleep e a função usleep () que é a mesma que as funções sleep e thread sleep, sleep_for e sleep_until. As funções Sleep () e usleep () são iguais, exceto pela unidade de tempo usada para especificar o tempo de sono.
Na função sleep (), o tempo é especificado em segundos, enquanto na função usleep (), o tempo é especificado em microssegundos. As funções de thread sleep_for () suspendem a execução de thread por um período de tempo específico fornecido como argumento. A segunda função de thread sleep_until () suspende a execução da thread até que um tempo especificado tenha decorrido.
Leitura sugerida = >> O que é Thread Testing?
Todas as funções de sono discutidas podem levar mais tempo para retornar, dependendo da programação ou de outros atrasos específicos do recurso.
=> Leia a popular série de treinamento C ++ aqui.
Leitura recomendada
- Tutorial da função principal do Python com exemplos práticos
- Multithreading em C ++ com exemplos
- 10 melhores softwares de relógio de ponto grátis para rastreamento de tempo de funcionários
- QTP Tutorial # 21 - Como tornar os testes QTP modulares e reutilizáveis usando bibliotecas de ações e funções
- Funções em C ++ com tipos e exemplos
- Comandos dos programas de utilitários do Unix: Qual, Man, Find Su, Sudo (Parte D)
- Oportunidade de trabalho de meio expediente para especialistas em selênio
- 10 MELHORES aplicativos de rastreamento de tempo para freelancers (2021 SELETIVO)