c sleep how use sleep function c programs
Denne C ++ Sleep-opplæringen vil diskutere søvnfunksjonen i C ++ og se hvordan du setter en tråd i dvale. Vi vil også lære om de andre funksjonene, nemlig. sove:
Ethvert dataprogram som er en prosess, oppgave eller tråd kan 'sove' eller gå i en inaktiv tilstand i en bestemt tid. Henrettelsen er suspendert, for denne tidsperioden. Utførelsen vil gjenopptas når tidsintervallet for søvn utløper eller et signal eller avbrudd fører til at utførelsen gjenopptas.
For å sette et program (oppgave, prosess eller tråd) i dvale bruker vi en søvnsystemanrop. En typisk søvnsystemanrop tar tiden som parameter som indikerer hvor lang tid programmet trenger for å sove eller forbli inaktivt.
=> Sjekk den komplette C ++ treningsserien her.
Vi har også usleep () og thread :: sleep-funksjoner som vi vil diskutere i denne opplæringen. Tiden som gis er stort sett i millisekunder, mikrosekunder eller sekunder, og avhengig av at vi har forskjellige funksjoner som kan sette programmet i dvale.
Hva du vil lære:
- Sleep () -funksjon
- Usleep () -funksjon
- Tråd Sleep (sleep_for & sleep_until)
- ofte stilte spørsmål
- Konklusjon
- Anbefalt lesing
Sleep () -funksjon
C ++ språk gir ikke en egen søvnfunksjon. Operativsystemets spesifikke filer som unistd.h for Linux og Windows.h for Windows gir denne funksjonaliteten.
Når vi bruker Linux- eller UNIX-operativsystemet, må vi ta med 'unistd.h' -hodefilen i programmet vårt for å bruke sove () funksjon.
Når du bruker Windows-operativsystemet, må vi inkludere “Windows.h” -overskriften for å bruke sleep () -funksjonen. Så for å skrive et program på tvers av plattformer, kan vi ha koden som vist nedenfor slik at en av topptekstene vil bli brukt.
#ifdef _WIN32 #include #else #include #endif
Søvnfunksjonen er beskrevet nedenfor:
Funksjon prototype:
usignert søvn (usignerte sekunder);
Parametere:
sekunder => Tidsperiode i sekunder som kjøringen av programmet er suspendert for
Returverdi:
0 => Hvis søvn kommer tilbake etterhvert som ønsket tid har gått.
Hvis søvnen blir avbrutt av et signal, returneres et uslept beløp (angitt tidsperiode minus faktisk forløpt tid).
Beskrivelse:
Sleep () -funksjonen får programmet eller prosessen det kalles til, til å avbryte kjøringen midlertidig i en periode i sekunder spesifisert av funksjonsparameteren. Utførelsen er suspendert til ønsket tid er gått eller et signal eller et avbrudd leveres til funksjonen.
Imidlertid, hvis systemet har planlagt annen aktivitet, kan suspensjonstiden være lengre.
Nedenfor er et C ++ - program som bruker søvnfunksjonen mellom to cout-utsagn.
hva er brukstilfelle i programvaretesting
#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; }
Produksjon:
Hei Verden
I det ovennevnte programmet gir vi en søvnkommando med en periode på 10 sekunder etter utskriften 'Hello'. Kompilatoren venter i 10 sekunder etter å ha skrevet ut 'Hello' og skriver deretter ut 'World'.
Merk: Lesere bør utføre dette programmet for å forstå forståelsen av søvnkommandoen
Usleep () -funksjon
Overskriften “unistd.h” gir enda en funksjon “usleep ()” som kan avbryte kjøringen av et program i en spesifisert tidsperiode. Arbeidet ligner på funksjonen sleep () som allerede er beskrevet.
Funksjon prototype: int usleep (useconds_t useconds);
Parametere: usekunder => Antall mikrosekunder som kjøringen er suspendert for
Returverdi:
0 => Usleep har returnert.
-1 & errno => Funksjonen mislyktes.
Beskrivelse:
Funksjonen usleep () avbryter utførelsen av anropstråden for usekunder mikrosekunder eller til signalet blir levert til tråden som avbryter utførelsen.
Granulariteten til tidsverdiene som brukes i usleep-funksjonen kan være implementeringsspesifikk. Hvis vi trenger finere granularitet enn den som er spesifisert av implementeringen, avrundes den faktiske tidverdien til neste støttede verdi.
Nedenfor er et eksempel for å demonstrere usleep () -funksjonen.
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Produksjon:
Hei Verden
Som vist i ovennevnte utdata, spesifiserer vi tidsperioden som 10000 mikrosekunder for usleep-funksjon, og akkurat som det forrige programmet som bruker sleep-funksjon, skriver vi ut 'Hello World' -strengen.
Tråd Sleep (sleep_for & sleep_until)
C ++ 11 gir spesifikke funksjoner for å sette en tråd i dvale.
Det er to funksjoner:
Std :: this_thread :: sleep_for
Funksjon prototype:
template void sleep_for( const std::chrono::duration& sleep_duration );
Parametere: sleep_duration => Varighet til søvn
Returverdi: ingen
Beskrivelse: Sleep_for () -funksjonen er definert i overskriften. Sleep_for () -funksjonen blokkerer kjøringen av den gjeldende tråden i det minste for den angitte tiden, dvs. sleep_duration.
Denne funksjonen kan blokkere i lengre tid enn en spesifisert tid på grunn av planlegging av aktiviteter eller forsinkelser i ressurskonflikter.
Et C ++ eksempel som demonstrerer bruken av sleep_for er gitt nedenfor:
#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
'; }
Produksjon:
Hei, jeg venter….
Ventet 2000 ms
I programmet ovenfor har vi en spesifisert søvnvarighet på 20000 millisekunder. Dette betyr at tråden vil blokkere i 20000 millisekunder før du fortsetter operasjonen.
Std :: this_thread :: sleep_until
Funksjon prototype:
template void sleep_until( const std::chrono::time_point& sleep_time );
Parametere: sleep_time => Tidsvarighet til hvilken tråden skal blokkeres.
Returverdi: ingen
Beskrivelse: Denne funksjonen er definert i overskriften. Sleep_until () -funksjonen blokkerer utførelsen av en tråd til sleep_time er gått. I likhet med de andre funksjonene kan denne funksjonen også blokkere i lengre tid enn en spesifisert tid på grunn av planleggingsaktiviteter eller forsinkelser i ressurskonflikter.
Et C ++ -program for sleep_until-funksjon er gitt nedenfor.
#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; }
Produksjon:
Nåværende tid :: Thu Sep 19 12:52:01 2019
Sove til :: Thu Sep 19 12:53:01 2019
Våknet… Nåværende tid :: Tor 19. september 12:53:01 2019
I dette programmet får vi tråden til å sove i 60 sekunder, dvs. 1 minutt. Når 1 minutt er ferdig; tråden våkner og skriver ut gjeldende tid.
ofte stilte spørsmål
Q # 1) Hva gjør søvn () i C ++?
Svar: Sleep () -funksjonen avbryter gjennomføringen av programmet i en spesifisert tidsperiode. Denne tidsperioden er spesifisert som et argument for sleep () -funksjonen.
Q # 2) Hva er overskriftsfilen for dvale i C ++?
Svar: Overskriften for søvn er “unistd.h” for LINUX / UNIX-operativsystemet og “Windows.h” for Windows-operativsystemet. For trådsøvn som bruker ‘sleep_for’ og ‘sleep_until’ funksjoner, brukes header.
Q # 3) Hva er bruken av #include Unistd H?
Svar: Overskriften 'Unistd.h' er overskriften som definerer sleep () -funksjonen for å avbryte utførelsen av programmet.
Konklusjon
I denne veiledningen for sleep () -funksjonen har vi diskutert sleep-funksjonen og usleep () -funksjonen, som er den samme som sleep- og thread sleep-funksjonene, sleep_for og sleep_until. Sleep () og usleep () -funksjonene er de samme bortsett fra tidsenheten som brukes til å spesifisere hviletiden.
I sleep () -funksjonen er tiden spesifisert i sekunder, mens i usleep () -funksjonen er tiden spesifisert i mikrosekunder. Trådfunksjonene sleep_for () suspenderer trådutførelsen i en bestemt tidsperiode gitt som et argument. Den andre trådfunksjonen sleep_until () suspenderer kjøringen av tråden til en spesifisert tid har gått.
Foreslått lesing = >> Hva er trådtesting?
Det kan ta lengre tid å returnere alle søvnfunksjonene som er diskutert, avhengig av planlegging eller andre ressursspesifikke forsinkelser.
=> Les gjennom den populære C ++ treningsserien her.
Anbefalt lesing
- Python hovedveiledning med praktiske eksempler
- Multitrading i C ++ med eksempler
- 10 beste gratis tidsprogramvare for tidssporing av ansatte
- QTP Opplæring # 21 - Hvordan lage QTP-tester modulære og gjenbrukbare ved hjelp av handlinger og funksjonsbiblioteker
- Funksjoner i C ++ med typer og eksempler
- Unix Utilities-programmer Kommandoer: Hvilken, Man, Finn Su, Sudo (Del D)
- Deltid frilansende jobbmulighet for seleneksperter
- 10 BESTE tidssporingsapper for frilansere (2021 SELECTIVE)