c sleep how use sleep function c programs
Овај Ц ++ водич за спавање ће размотрити функцију спавања у Ц ++ и видети како успавати нит. Такође ћемо научити и о осталим функцијама, тј. услееп:
Било који рачунарски програм који је процес, задатак или нит може да „спава“ или да пређе у неактивно стање одређено време. Извршење је обустављено за овај временски период. Извршење ће се наставити када истекне временски интервал спавања или сигнал или прекид проузрокује да се извршење настави.
Да бисмо успавали програм (задатак, процес или нит), користимо системски позив за спавање. Типични системски позив за спавање узима време као параметар који показује колико времена програму треба да спава или остане неактиван.
=> Овде погледајте комплетну серију обука за Ц ++.
Такође имамо функције услееп () и тхреад :: слееп о којима ћемо разговарати у овом водичу. Предвиђено време је углавном у милисекундама, микросекундама или секундама и у зависности од тога имамо разне функције које могу успавати програм.
Шта ћете научити:
- Функција спавања ()
- Услееп () функција
- Спавање навоја (слееп_фор & слееп_унтил)
- Често постављана питања
- Закључак
- Препоручено читање
Функција спавања ()
Ц ++ језик не пружа сопствену функцију спавања. Међутим, одређене датотеке оперативног система попут унистд.х за Линук и Виндовс.х за Виндовс пружају ову функционалност.
Када користимо оперативни систем Линук или УНИКС, у наш програм морамо да укључимо заглавну датотеку „унистд.х“ да бисмо користили спавање () функцију.
Док користимо оперативни систем Виндовс, морамо да укључимо заглавље „Виндовс.х“ да бисмо користили функцију слееп (). Дакле, да бисмо написали програм са више платформи, можемо имати код као што је приказано доле, тако да ће се користити било које заглавље.
#ifdef _WIN32 #include #else #include #endif
Функција спавања је описана у наставку:
Прототип функције:
непотписано спавање (непотписане секунде);
Параметри:
секунди => Временски период у секундама за који је обустављено извршавање програма
Повратна вредност:
0 => Ако се сан врати како је протекло тражено време.
Ако је спавање прекинуто сигналом, враћа се неспавана количина (наведен тражени временски период умањен за стварно протекло време).
Опис:
Функција слееп () узрокује да програм или процес у којем је позван привремено обустави своје извршавање на временски период у секундама наведеним параметром функције. Извршење се обуставља док не истекне тражено време или док се функцији не достави сигнал или прекид.
Међутим, ако је систем заказао било коју другу активност, време суспендовања може бити дуже.
Доље је дат програм Ц ++ који користи функцију спавања између две изјаве цоут.
шаблон резимеа теста у Екцелу
#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 секунди након исписа „Хелло“, а затим штампа „Ворлд“.
Белешка: Читаоци би требало да изврше овај програм да би заправо разумели рад наредбе за спавање
Услееп () функција
Заглавље „унистд.х“ пружа још једну функцију „услееп ()“ која може да заустави извршавање програма на одређено време. Рад је сличан већ описаној функцији слееп ().
Прототип функције: инт услееп (усецондс_т усецондс);
Параметри: усекунде => Број микросекунди за које је извршење обустављено
Повратна вредност:
0 => Услееп се успешно вратио.
-1 & грешка => Функција није успела.
Опис:
Функција услееп () обуставља извршавање позива нити за секунде микросекунде или док се сигнал не испоручи нити која прекида извршење.
Грануларност вредности тајмера који се користе у услееп функцији може бити специфична за имплементацију. Ако нам је потребна прецизнија грануларност од оне која је наведена имплементацијом, тада се стварна вредност тајмера заокружује на следећу подржану вредност.
Следећи пример је пример за демонстрирање услееп () функције.
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Излаз:
Здраво Свете
Као што је приказано у горњем излазу, временски период специфицирамо као 10000 микросекунди за функцију успавања и баш као и претходни програм који користи функцију спавања, исписујемо низ „Хелло Ворлд“.
Спавање навоја (слееп_фор & слееп_унтил)
Ц ++ 11 пружа специфичне функције за успављивање нити.
Постоје две функције:
Стд :: тхис_тхреад :: слееп_фор
Прототип функције:
template void sleep_for( const std::chrono::duration& sleep_duration );
Параметри: слееп_дуратион => Време трајања спавања
Повратна вредност: ниједан
Опис: Функција слееп_фор () је дефинисана у заглављу. Функција слееп_фор () блокира извршавање тренутне нити најмање одређено време, тј.
Ова функција може блокирати дуже време од одређеног времена због активности заказивања или кашњења у сукобу ресурса.
Пример Ц ++ који демонстрира употребу слееп_фор-а дат је у наставку:
#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 мс
У горњем програму имамо наведено трајање спавања од 20000 милисекунди. То значи да ће се нит блокирати 20000 милисекунди пре наставка рада.
Стд :: тхис_тхреад :: слееп_унтил
Прототип функције:
template void sleep_until( const std::chrono::time_point& sleep_time );
Параметри: слееп_тиме => Време трајања до ког ће нит бити блокиран.
Повратна вредност: ниједан
Опис: Ова функција је дефинисана у заглављу. Функција слееп_унтил () блокира извршавање нити све док не истекне време мировања. Као и остале функције, и ова функција може блокирати дуже време од одређеног времена због активности заказивања или кашњења у сукобу ресурса.
У наставку је дат програм Ц ++ за функцију слееп_унтил.
#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) Шта спавање () ради на Ц ++?
Одговор: Функција Слееп () обуставља извршавање програма на одређено време. Овај временски период наведен је као аргумент функције слееп ().
П # 2) Шта је датотека заглавља за спавање у Ц ++?
Одговор: Заглавље мировања је „унистд.х“ за ЛИНУКС / УНИКС оперативни систем и „Виндовс.х“ за Виндовс оперативни систем. За спавање нити које користи функције ‘слееп_фор’ и ‘слееп_унтил’ користи се заглавље.
П # 3) Каква је корист од #инцлуде Унистд Х?
Одговор: Заглавље ‘Унистд.х’ је заглавље које дефинише функцију слееп () за заустављање извршавања програма.
Закључак
У овом упутству за функцију слееп () разговарали смо о функцији спавања и услееп () функцији која је иста као функције спавања и спавања нити, слееп_фор и слееп_унтил. Функције спавања () и успавања () су исте, осим временске јединице која се користи за одређивање времена спавања.
У функцији слееп () време је наведено у секундама, док је у функцији услееп () време наведено у микросекундама. Функције нити слееп_фор () обустављају извршавање нити за одређено временско раздобље наведено као аргумент. Функција друге нити слееп_унтил () обуставља извршавање нити док не истекне одређено време.
Предложено читање = >> Шта је тестирање навоја?
Враћање свих дискутованих функција спавања може потрајати дуже, у зависности од распореда или других кашњења специфичних за ресурсе.
=> Овде прочитајте популарне серије обуке за Ц ++.
Препоручено читање
- Водич за главне функције Питхона са практичним примерима
- Мултитхреадинг у Ц ++ са примерима
- 10 најбољих софтвера за слободно време за праћење времена запослених
- КТП водич # 21 - Како направити КТП тестове модуларним и поновним коришћењем помоћу библиотека радњи и функција
- Функције у Ц ++ са типовима и примерима
- Наредбе програма Уник Утилитиес: Вхицх, Ман, Финд Су, Судо (Део Д)
- Прилика за хонорарно хонорарно ангажовање стручњака за селен
- 10 НАЈБОЉИХ апликација за праћење времена за слободњаке (2021 СЕЛЕЦТИВЕ)