c sleep how use sleep function c programs
Този урок за C ++ Sleep ще обсъди функцията за заспиване в C ++ и ще види как да поставите нишка в режим на заспиване. Ще научим и за другите функции, а именно. заспи:
Всяка компютърна програма, която представлява процес, задача или нишка, може да „заспи“ или да премине в неактивно състояние за определено време. Изпълнението е спряно за този период от време. Изпълнението ще бъде възобновено обратно, когато интервалът от време на съня изтече или сигнал или прекъсване доведе до възобновяване на изпълнението.
За да поставим програма (задача, процес или нишка) в режим на заспиване, ние използваме системно повикване за заспиване. Типичното системно обаждане в режим на заспиване отнема времето като параметър, който показва колко време е необходимо на програмата да заспи или да остане неактивна.
=> Проверете тук пълната серия за обучение на C ++.
Също така имаме функции usleep () и thread :: sleep, които ще обсъдим в този урок. Предоставеното време е предимно в милисекунди, микросекунди или секунди и в зависимост от това имаме различни функции, които могат да приспят програмата.
Какво ще научите:
- Функция за заспиване ()
- Функция Usleep ()
- Сън в нишка (сън_за & сън_докато)
- често задавани въпроси
- Заключение
- Препоръчително четене
Функция за заспиване ()
Езикът C ++ не осигурява собствена функция за заспиване. Специфичните файлове на операционната система обаче като unistd.h за Linux и Windows.h за Windows предоставя тази функционалност.
Когато използваме операционната система Linux или UNIX, трябва да включим заглавния файл “unistd.h” в нашата програма, за да използваме сън () функция.
Докато използваме операционната система Windows, трябва да включим заглавката „Windows.h“, за да използваме функцията sleep (). Така че, за да напишем програма с различни платформи, можем да имаме кода, както е показано по-долу, така че да се използва някоя от заглавките.
#ifdef _WIN32 #include #else #include #endif
Функцията за сън е описана по-долу:
Прототип на функция:
неподписан сън (неподписани секунди);
Параметри:
секунди => Период в секунди, за който изпълнението на програмата е спряно
Върната стойност:
0 => Ако сънят се върне с изтичането на исканото време.
Ако сънят бъде прекъснат от сигнал, тогава се връща недоспано количество (посочен период от време, посочен минус действителното изминало време).
Описание:
Функцията sleep () кара програмата или процесът, в който е извикана, временно да спре изпълнението си за период от време в секунди, определен от параметъра на функцията. Изпълнението се спира до изтичане на исканото време или подаване на сигнал или прекъсване до функцията.
Ако обаче системата е насрочила някаква друга дейност, времето на спиране може да е по-дълго.
По-долу е дадена програма на C ++, която използва функцията за заспиване между две cout оператори.
въпроси за интервю за селен webdriver за 4 години опит
#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; }
Изход:
Здравей свят
В горната програма даваме команда за заспиване с период от 10 секунди след отпечатване на „Здравей“. Компилаторът изчаква 10 секунди след отпечатване на „Hello“ и след това отпечатва „World“.
Забележка: Читателите трябва да изпълнят тази програма, за да разберат действително работата на командата за заспиване
Функция Usleep ()
Заглавката „unistd.h“ предоставя още една функция „usleep ()“, която може да спре изпълнението на програма за определен период от време. Работата е подобна на вече описаната функция sleep ().
Прототип на функция: int usleep (useconds_t useconds);
Параметри: useconds => Брой микросекунди, за които изпълнението е спряно
Върната стойност:
0 => Usleep се завърна успешно.
-1 & errno => Функцията не бе успешна.
Описание:
Функцията usleep () спира изпълнението на извикващата нишка за секунди микросекунди или докато сигналът бъде доставен към нишката, която прекъсва изпълнението.
Гранулирането на стойностите на таймера, използвани във функцията usleep, може да е специфично за изпълнението. Ако се нуждаем от по-фина детайлност от тази, посочена от изпълнението, тогава действителната стойност на таймера се закръглява до следващата поддържана стойност.
Даден по-долу е пример за демонстриране на функцията usleep ().
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Изход:
Здравей свят
Както е показано в горния изход, ние определяме периода от време като 10000 микросекунди за функцията usleep и точно както предишната програма, използваща функцията за заспиване, отпечатваме низа „Hello World“.
Сън в нишка (сън_за & сън_докато)
C ++ 11 предоставя специфични функции за приспиване на нишка.
Има две функции:
Std :: this_thread :: sleep_for
Прототип на функция:
template void sleep_for( const std::chrono::duration& sleep_duration );
Параметри: sleep_duration => Времетраене за сън
Възвръщаема стойност: нито един
Описание: Функцията sleep_for () е дефинирана в заглавката. Функцията sleep_for () блокира изпълнението на текущата нишка поне за определеното време, т.е.
Тази функция може да блокира за по-голяма продължителност от определено време поради дейности по планиране или закъснения в оспорването на ресурси.
Пример за C ++, демонстриращ използването на sleep_for, е даден по-долу:
#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
'; }
Изход:
Здравейте, чакам ...
Изчакано 2000 ms
В горната програма имаме определена продължителност на съня от 20000 милисекунди. Това означава, че нишката ще блокира за 20000 милисекунди, преди да възобнови операцията.
Std :: this_thread :: sleep_until
Прототип на функция:
template void sleep_until( const std::chrono::time_point& sleep_time );
Параметри: sleep_time => Времетраене на времето, до което нишката трябва да бъде блокирана.
Възвръщаема стойност: нито един
Описание: Тази функция е дефинирана в заглавката. Функцията sleep_until () блокира изпълнението на нишка, докато времето на сън не изтече. Подобно на другите функции, тази функция може също да блокира за по-голяма продължителност от определено време поради дейности по планиране или забавяне на оспорването на ресурси.
Програма C ++ за функцията 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; }
Изход:
Текущо време :: чт септември 19 12:52:01 2019
Спане до :: четвъртък 19 септември 12:53:01 2019
Събудих се ... Текущо време :: Чет 19 септември 12:53:01 2019
В тази програма ние правим нишката да спи за 60 секунди, т.е. 1 минута. След като приключи 1 минута; нишката се събужда и отпечатва текущото време.
често задавани въпроси
В # 1) Какво прави sleep () в C ++?
Отговор: Функцията Sleep () спира изпълнението на програмата за определен период от време. Този период от време е посочен като аргумент на функцията sleep ().
В # 2) Какво представлява заглавният файл за заспиване в C ++?
Отговор: Заглавката за заспиване е „unistd.h“ за операционната система LINUX / UNIX и „Windows.h“ за операционната система Windows. За сън на нишки, който използва функциите ‘sleep_for’ и ‘sleep_until’, се използва заглавката.
В # 3) Каква е ползата от #include Unistd H?
Отговор: Заглавката ‘Unistd.h’ е заглавката, която дефинира функцията sleep () за спиране на изпълнението на програмата.
Заключение
В този урок за функцията sleep () обсъдихме функцията sleep и usleep (), която е същата като функциите sleep and thread sleep, sleep_for и sleep_until. Функциите Sleep () и usleep () са еднакви, с изключение на единицата време, използвана за задаване на времето за заспиване.
При функцията sleep () времето се посочва в секунди, докато при usleep () функцията времето се посочва в микросекунди. Функцията на нишката sleep_for () спира изпълнението на нишката за определен период от време, предоставен като аргумент. Втората функция на нишката sleep_until () спира изпълнението на нишката, докато не изтече определено време.
Предложено четене = >> Какво е тестване на резби?
Всички обсъдени функции на съня могат да отнемат повече време, за да се върнат в зависимост от планирането или други специфични за ресурси закъснения.
=> Прочетете Популярната серия за обучение на C ++ тук.
Препоръчително четене
- Урок за основната функция на Python с практически примери
- Многопоточност в C ++ с примери
- 10 най-добър софтуер за часовник за свободно време за проследяване на времето на служителите
- Урок за QTP # 21 - Как да направим QTP тестове модулни и многократно използващи библиотеки с действия и функции
- Функции в C ++ с типове и примери
- Команди на програми за помощни програми на Unix: Кой, Човек, Намери Су, Судо (Част Г)
- Възможност за работа на свободна практика на непълно работно време за експерти по селен
- 10 НАЙ-ДОБРИ приложения за проследяване на време за свободни професии [2021 SELECTIVE]