c sleep how use sleep function c programs
Ovaj C ++ vodič za spavanje raspravljat će o funkciji spavanja u C ++ i vidjeti kako uspavati nit. Također ćemo naučiti i o ostalim funkcijama, naime. uspavati:
Bilo koji računalni program koji je proces, zadatak ili nit može ‘spavati’ ili preći u neaktivno stanje određeno vrijeme. Ovrha je obustavljena, za ovo vremensko razdoblje. Izvršenje će se nastaviti natrag kad istekne vremenski interval spavanja ili signal ili prekid uzrokuje da se izvršenje nastavi.
Da bismo uspavali program (zadatak, proces ili nit), koristimo sistemski poziv za spavanje. Tipični sistemski poziv za mirovanje uzima vrijeme kao parametar koji pokazuje koliko vremena programu treba da spava ili ostane neaktivan.
=> Ovdje provjerite cjelovitu seriju obuka za C ++.
Također imamo funkcije usleep () i thread :: sleep o kojima ćemo raspravljati u ovom vodiču. Predviđeno vrijeme je uglavnom u milisekundama, mikrosekundama ili sekundama, a ovisno o tome imamo razne funkcije koje mogu uspavati program.
Što ćete naučiti:
- Funkcija spavanja ()
- Usleep () funkcija
- Spavanje niti (sleep_for & sleep_until)
- Često postavljana pitanja
- Zaključak
- Preporučena literatura
Funkcija spavanja ()
C ++ jezik ne pruža vlastitu funkciju spavanja. Međutim, određene datoteke operativnog sustava poput unistd.h za Linux i Windows.h za Windows pružaju ovu funkcionalnost.
Kada koristimo Linux ili UNIX operativni sustav, u naš program moramo uključiti zaglavnu datoteku 'unistd.h' da bismo koristili spavati () funkcija.
Dok koristimo operativni sustav Windows, moramo uključiti zaglavlje 'Windows.h' da bismo koristili funkciju sleep (). Dakle, da bismo napisali program na više platformi, možemo imati kôd kao što je prikazano dolje, tako da će se koristiti bilo koje zaglavlje.
#ifdef _WIN32 #include #else #include #endif
Funkcija spavanja opisana je u nastavku:
Prototip funkcije:
nepotpisano spavanje (nepotpisane sekunde);
Parametri:
sekunde => Vremensko razdoblje u sekundama za koje je obustavljeno izvršavanje programa
Povratna vrijednost:
0 => Ako se san vrati kako je proteklo traženo vrijeme.
Ako signal prekine spavanje, vraća se nespavani iznos (navedeno traženo vremensko razdoblje umanjeno za stvarno proteklo vrijeme).
Opis:
Funkcija sleep () uzrokuje da program ili proces u kojem je pozvan privremeno obustavi svoje izvršavanje na neko vrijeme u sekundama određeno parametrom funkcije. Izvršenje se obustavlja dok ne istekne traženo vrijeme ili dok se funkciji ne dostavi signal ili prekid.
Međutim, ako je sustav zakazao bilo koju drugu aktivnost, vrijeme suspenzije može biti duže.
Dolje je dan program C ++ koji koristi funkciju spavanja između dvije cout izjave.
koji je od sljedećeg jedan od najpopularnijih okvira za testiranje?
#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; }
Izlaz:
Pozdrav svijete
U gornjem programu dajemo naredbu za spavanje s vremenom od 10 sekundi nakon ispisa 'Hello'. Prevodnik čeka 10 sekundi nakon ispisa 'Hello', a zatim ispisuje 'World'.
Bilješka: Čitatelji bi trebali izvršiti ovaj program kako bi zapravo razumjeli rad naredbe mirovanja
Usleep () funkcija
Zaglavlje 'unistd.h' pruža još jednu funkciju 'usleep ()' koja može zaustaviti izvršavanje programa na određeno vrijeme. Rad je sličan već opisanoj funkciji sleep ().
Prototip funkcije: int usleep (useconds_t useconds);
Parametri: usekunde => Broj mikrosekundi za koje je izvršenje obustavljeno
Povratna vrijednost:
0 => Usleep se uspješno vratio.
-1 & errno => Funkcija nije uspjela.
Opis:
Funkcija usleep () obustavlja izvršavanje pozivajuće niti na sekunde mikrosekunde ili dok se signal ne dostavi niti koja prekida izvršenje.
Granularnost vrijednosti timera koji se koriste u usleep funkciji može biti specifična za implementaciju. Ako trebamo finiju granulaciju od one koja je navedena implementacijom, tada se stvarna vrijednost timera zaokružuje na sljedeću podržanu vrijednost.
Dolje je dat primjer za prikaz funkcije usleep ().
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Izlaz:
Pozdrav svijete
Kao što je prikazano u gornjem izlazu, vremensko razdoblje specificiramo kao 10000 mikrosekundi za funkciju uspavanja i baš kao i prethodni program koji koristi funkciju spavanja, ispisujemo niz 'Hello World'.
Spavanje niti (sleep_for & sleep_until)
C ++ 11 pruža specifične funkcije za uspavljivanje niti.
Dvije su funkcije:
Std :: this_thread :: sleep_for
Prototip funkcije:
template void sleep_for( const std::chrono::duration& sleep_duration );
Parametri: sleep_duration => Trajanje spavanja
Povratna vrijednost: nijedna
Opis: Funkcija sleep_for () definirana je u zaglavlju. Funkcija sleep_for () blokira izvršavanje trenutne niti barem određeno vrijeme, tj. Trajanje_spavanja.
Ova funkcija može blokirati duže vrijeme od određenog vremena zbog aktivnosti raspoređivanja ili kašnjenja u sukobu resursa.
Primjer C ++ koji pokazuje upotrebu spavanja_for dat je u nastavku:
#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
'; }
Izlaz:
Pozdrav, čekam ...
Čekalo 2000 ms
U gore navedenom programu imamo navedeno trajanje spavanja od 20000 milisekundi. To znači da će nit blokirati 20000 milisekundi prije nastavka rada.
Std :: this_thread :: sleep_until
Prototip funkcije:
template void sleep_until( const std::chrono::time_point& sleep_time );
Parametri: sleep_time => Trajanje vremena do kojeg će nit biti blokiran.
Povratna vrijednost: nijedna
Opis: Ova je funkcija definirana u zaglavlju. Funkcija sleep_until () blokira izvršavanje niti sve dok ne istekne vrijeme_spavanja. Kao i ostale funkcije, i ova funkcija može blokirati dulje vrijeme od određenog vremena zbog aktivnosti raspoređivanja ili kašnjenja u sukobu resursa.
U nastavku je dan program C ++ za funkciju sleep_until.
#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; }
Izlaz:
Trenutno vrijeme :: Thu Sep 19 12:52:01 2019
Spavanje do :: Thu Sep 19 12:53:01 2019
Probudio se ... Trenutno vrijeme :: Thu Sep 19 12:53:01 2019
U ovom programu učinimo da nit spava 60 sekundi, tj. 1 minutu. Nakon što završi 1 minuta; nit se budi i ispisuje trenutno vrijeme.
Često postavljana pitanja
P # 1) Što sleep () radi na C ++?
Odgovor: Funkcija mirovanja () zaustavlja izvršavanje programa na određeno vremensko razdoblje. Ovo je vremensko razdoblje navedeno kao argument funkcije sleep ().
P # 2) Koja je datoteka zaglavlja za spavanje u C ++?
Odgovor: Zaglavlje mirovanja je 'unistd.h' za operativni sustav LINUX / UNIX i 'Windows.h' za operativni sustav Windows. Za spavanje niti koje koristi funkcije ‘sleep_for’ i ‘sleep_until’ koristi se zaglavlje.
P # 3) Kakva je korist od #include Unistd H?
Odgovor: Zaglavlje ‘Unistd.h’ je zaglavlje koje definira funkciju sleep () za zaustavljanje izvršavanja programa.
Zaključak
U ovom uputstvu za funkciju sleep () raspravljali smo o funkciji spavanja i usleep () koja je ista kao funkcije spavanja i spavanja niti, sleep_for i sleep_until. Funkcije mirovanja () i uspavanja () su iste, osim vremenske jedinice koja se koristi za određivanje vremena spavanja.
U funkciji sleep () vrijeme je navedeno u sekundama, dok je u funkciji usleep () vrijeme navedeno u mikrosekundama. Funkcije niti sleep_for () obustavlja izvršavanje niti za određeno vremensko razdoblje navedeno kao argument. Druga funkcija niti sleep_until () obustavlja izvršavanje niti dok ne istekne određeno vrijeme.
Predloženo čitanje = >> Što je ispitivanje niti?
Vraćanje svih raspravljenih funkcija spavanja može potrajati dulje vrijeme, ovisno o rasporedu ili drugim kašnjenjima specifičnim za resurse.
=> Ovdje pročitajte popularne serije obuke za C ++.
Preporučena literatura
- Vodič za glavne funkcije Pythona s praktičnim primjerima
- Višenitnost u jeziku C ++ s primjerima
- 10 najboljih softvera za slobodno vrijeme za praćenje vremena zaposlenika
- QTP vodič # 21 - Kako napraviti QTP testove modularnim i višekratnim korištenjem knjižnica radnji i funkcija
- Funkcije u C ++ s vrstama i primjerima
- Naredbe programa Unix Utilities: Which, Man, Find Su, Sudo (Dio D)
- Prilika za honorarno honorarno zapošljavanje stručnjaka za selen
- 10 NAJBOLJIH aplikacija za praćenje vremena za slobodnjake [2021 SELECTIVE]