c sleep how use sleep function c programs
Acest tutorial C ++ Sleep va discuta despre funcția Sleep în C ++ și va vedea cum să adormiți un fir. Vom afla, de asemenea, despre celelalte funcții și anume. tu dormi:
Orice program de computer care este un proces, o sarcină sau un fir poate „dormi” sau intra într-o stare inactivă pentru un anumit timp. Executarea este suspendată, pentru această perioadă de timp. Execuția va fi reluată înapoi când intervalul de timp de somn expiră sau un semnal sau întrerupere determină reluarea execuției.
Pentru a pune un program (sarcină, proces sau fir) în repaus, folosim un apel de sistem de repaus. Un apel tipic de sistem de somn ia timpul ca parametru care indică cât timp are nevoie programul pentru a dormi sau a rămâne inactiv.
=> Verificați aici seria completă de formare C ++.
De asemenea, avem funcții usleep () și thread :: sleep pe care le vom discuta în acest tutorial. Timpul furnizat este în majoritate în milisecunde, microsecunde sau secunde și în funcție de acestea avem diverse funcții care pot pune programul în somn.
Ce veți învăța:
- Funcția Sleep ()
- Funcția Usleep ()
- Thread Sleep (sleep_for & sleep_until)
- întrebări frecvente
- Concluzie
- Lectură recomandată
Funcția Sleep ()
Limbajul C ++ nu oferă o funcție de somn proprie. Cu toate acestea, fișierele specifice sistemului de operare, cum ar fi unistd.h pentru Linux și Windows.h pentru Windows oferă această funcționalitate.
Când folosim sistemul de operare Linux sau UNIX, trebuie să includem fișierul antet „unistd.h” în programul nostru pentru a utiliza dormi () funcţie.
În timpul utilizării sistemului de operare Windows, trebuie să includem antetul „Windows.h” pentru a utiliza funcția sleep (). Deci, pentru a scrie un program multiplataforma, putem avea codul așa cum se arată mai jos, astfel încât să fie utilizate oricare dintre anteturi.
#ifdef _WIN32 #include #else #include #endif
Funcția de somn este descrisă mai jos:
Prototipul funcției:
somn nesemnat (secunde nesemnate);
Parametri:
secunde => Perioada de timp în secunde pentru care executarea programului este suspendată
Valoare returnată:
0 => Dacă somnul revine odată cu trecerea timpului solicitat.
Dacă somnul este întrerupt de un semnal, atunci se returnează o sumă nesomnă (perioada de timp solicitată minus timpul efectiv scurs).
Descriere:
Funcția sleep () determină programul sau procesul în care este apelat, să-și suspende executarea temporar pentru o perioadă de timp în secunde specificată de parametrul funcției. Execuția este suspendată până la expirarea timpului solicitat sau transmiterea unui semnal sau a unei întreruperi funcției.
Cu toate acestea, dacă sistemul a programat orice altă activitate, atunci timpul de suspendare poate fi mai mare.
Mai jos este prezentat un program C ++ care folosește funcția sleep între două instrucțiuni cout.
c ++ 11 întrebări de interviu
#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; }
Ieșire:
Salut Lume
În programul de mai sus, dăm o comandă de repaus cu o perioadă de 10 secunde după tipărirea „Bună ziua”. Compilatorul așteaptă 10 secunde după tipărirea „Bună ziua” și apoi tipărește „Lumea”.
Notă: Cititorii ar trebui să execute acest program pentru a înțelege efectiv funcționarea comenzii de repaus
Funcția Usleep ()
Antetul „unistd.h” oferă încă o altă funcție „usleep ()” care poate suspenda executarea unui program pentru o perioadă de timp specificată. Funcționarea este similară cu funcția sleep () descrisă deja.
Prototipul funcției: int usleep (useconds_t useconds);
Parametri: secunde de utilizare => Numărul de microsecunde pentru care executarea este suspendată
Valoare returnată:
0 => Usleep a revenit cu succes.
-1 & errno => Funcția nu a reușit.
Descriere:
Funcția usleep () suspendă execuția firului de apel pentru microsecunde de secunde sau până când semnalul este livrat firului care întrerupe execuția.
Granularitatea valorilor temporizatorului utilizate în funcția de așteptare poate fi specifică implementării. Dacă avem nevoie de o granularitate mai fină decât cea specificată de implementare, atunci valoarea temporizatorului real este rotunjită la următoarea valoare acceptată.
Dat mai jos este un exemplu pentru a demonstra funcția usleep ().
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Ieșire:
Salut Lume
Așa cum se arată în rezultatul de mai sus, specificăm perioada de timp ca 10000 microsecunde pentru funcția de somn și la fel ca programul anterior care utilizează funcția de somn, imprimăm șirul „Hello World”.
Thread Sleep (sleep_for & sleep_until)
C ++ 11 oferă funcții specifice pentru a adormi un fir.
Există două funcții:
Std :: this_thread :: sleep_for
Prototipul funcției:
template void sleep_for( const std::chrono::duration& sleep_duration );
Parametri: sleep_duration => Durata timpului de somn
Valoare returnată: nici unul
Descriere: Funcția sleep_for () este definită în antet. Funcția sleep_for () blochează execuția firului curent cel puțin pentru timpul specificat, adică sleep_duration.
Această funcție se poate bloca pe o durată mai lungă decât o perioadă specificată din cauza activităților de planificare sau a întârzierilor de contestare a resurselor.
Un exemplu C ++ care demonstrează utilizarea sleep_for este dat mai jos:
#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
'; }
Ieșire:
Bună ziua, aștept ...
Așteptat 2000 ms
În programul de mai sus, avem o durată de somn specificată de 20000 de milisecunde. Aceasta înseamnă că firul se va bloca timp de 20000 de milisecunde înainte de a relua operația.
Std :: this_thread :: sleep_until
Prototipul funcției:
template void sleep_until( const std::chrono::time_point& sleep_time );
Parametri: sleep_time => Durata timpului până la care firul urmează să fie blocat.
Valoare returnată: nici unul
Descriere: Această funcție este definită în antet. Funcția sleep_until () blochează execuția unui thread până la expirarea sleep_time. La fel ca celelalte funcții, această funcție se poate bloca, de asemenea, pentru o durată mai lungă decât un timp specificat, din cauza activităților de planificare sau a întârzierilor legate de resursele.
Un program C ++ pentru funcția sleep_până este dat mai jos.
#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; }
Ieșire:
Ora curentă :: Joi 19 septembrie 12:52:01 2019
Dormind până: joi 19 septembrie 12:53:01 2019
M-am trezit ... Ora curentă :: Joi 19 septembrie 12:53:01 2019
În acest program, facem firul să adoarmă timp de 60 de secunde, adică 1 minut. Odată finalizat 1 minut; firul se trezește și imprimă ora curentă.
întrebări frecvente
Q # 1) Ce face sleep () în C ++?
Răspuns: Funcția Sleep () suspendă executarea programului pentru o perioadă de timp specificată. Această perioadă de timp este specificată ca argument pentru funcția sleep ().
Q # 2) Care este fișierul antet pentru somn în C ++?
Răspuns: Antetul pentru somn este „unistd.h” pentru sistemul de operare LINUX / UNIX și „Windows.h” pentru sistemul de operare Windows. Pentru firul de somn care utilizează funcțiile „sleep_for” și „sleep_until”, se utilizează antetul.
Î # 3) La ce folosește #include Unistd H?
Răspuns: Antetul „Unistd.h” este antetul care definește funcția sleep () pentru a suspenda executarea programului.
Concluzie
În acest tutorial pentru funcția sleep (), am discutat despre funcția sleep și funcția usleep () care este aceeași cu funcțiile sleep și thread sleep, sleep_for și sleep_până. Funcțiile Sleep () și usleep () sunt aceleași, cu excepția unității de timp utilizate pentru a specifica timpul de sleep.
În funcția sleep (), timpul este specificat în secunde, în timp ce în funcția usleep (), timpul este specificat în microsecunde. Funcțiile firului sleep_for () suspendă execuția firului pentru o anumită perioadă de timp furnizată ca argument. A doua funcție thread sleep_until () suspendă execuția thread-ului până când a trecut un timp specificat.
Citire sugerată = >> Ce este Testarea firelor?
Toate funcțiile de somn discutate pot dura mai mult timp pentru a reveni, în funcție de programare sau alte întârzieri specifice resurselor.
=> Citiți aici seria populară de formare C ++.
Lectură recomandată
- Tutorial de funcții principale Python cu exemple practice
- Multithreading în C ++ cu exemple
- Cele mai bune 10 programe software pentru ceas liber pentru urmărirea timpului angajaților
- Tutorial QTP # 21 - Cum să faci testele QTP modulare și reutilizabile folosind acțiuni și biblioteci de funcții
- Funcții în C ++ cu tipuri și exemple
- Comenzi Unix Utilities Programs: Which, Man, Find Su, Sudo (Partea D)
- Oportunitate de muncă freelancing cu normă parțială pentru experții în seleniu
- Cele mai bune 10 aplicații de urmărire a timpului pentru freelanceri (2021 SELECTIVE)