Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
atztek
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 32
1

Как работает функция sleep()

21.01.2019, 15:53. Просмотров 2404. Ответов 5
Метки нет (Все метки)

Из описания функции sleep():

Функция sleep приостанавливает работу потока, в котором она была вызвана, на указанное в аргументе время или до поступления сигнала по которому вызывается функция обработки сигналов или программа завершает свою работу.
Продолжительность остановки потока управления указывается в секунду и не может быть меньше указанного времени, если остановка не была прервана сигналом.
Допустим задано 3600 сек = 1 час:
sleep(3600);
Вопросы:
- Что происходит во время исполнения функции?
(она же должна все время обращаться за проверкой времени?)

- Насколько сильно она нагружает процессор?
- Существуют ли более 'экономные' эквиваленты данной функции?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2019, 15:53
Ответы с готовыми решениями:

функция sleep()
Помогите разобраться. Я изучаю "С" и использую программу Microsoft Visual C++ 2010 Express. Все...

Как работает функция?
Обьясните как работает эта функция: void SearchFam(char *Parametr, FILE *out) { char...

Как работает функция reverse()?
#include <stdio.h> reverse(int x) { x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));...

Как работает функция strtok?
Закоментите пожалуйста char *mystrtok(char * buf, const char * delim) { static char * H,...

Как работает функция malloc?
Добрый день. Кто - нибудь может рассказать как работает функция malloc ? Вот набрал код...

5
prik
280 / 183 / 61
Регистрация: 01.03.2011
Сообщений: 499
21.01.2019, 18:22 2
Лучший ответ Сообщение было отмечено atztek как решение

Решение

Цитата Сообщение от atztek Посмотреть сообщение
- Что происходит во время исполнения функции?
Для вашей программы ничего не происходит.Она просто спит.
Цитата Сообщение от atztek Посмотреть сообщение
(она же должна все время обращаться за проверкой времени?)
Зачем? ОС (там не время, а интервальный таймер) все сделает за вас.
Цитата Сообщение от atztek Посмотреть сообщение
- Насколько сильно она нагружает процессор?
Нагрузка стремиться к 0.
Цитата Сообщение от atztek Посмотреть сообщение
- Существуют ли более 'экономные' эквиваленты данной функции?
Что понимается под "экономные"?
1
sharpey
368 / 158 / 37
Регистрация: 21.09.2008
Сообщений: 526
21.01.2019, 18:37 3
Лучший ответ Сообщение было отмечено atztek как решение

Решение

Цитата Сообщение от atztek Посмотреть сообщение
- Что происходит во время исполнения функции?
(она же должна все время обращаться за проверкой времени?)
Зависит от целевой платформы и используемой ОС. Очень помогает изучение исходных текстов стандартной библиотеки Си. Например, для микроконтроллеров AVR фирмы Atmel (ныне Microchip) есть неGNU'тая библиотека avr-libc-2.0. Для многоплатформенных FreeBSD, Linux тоже имеются свои реализации. На Github можно найти.
Цитата Сообщение от atztek Посмотреть сообщение
- Насколько сильно она нагружает процессор?
Минимально.
Цитата Сообщение от atztek Посмотреть сообщение
- Существуют ли более 'экономные' эквиваленты данной функции?
Здесь непонятен вопрос, его бы развернуть.
1
atztek
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 32
21.01.2019, 19:57  [ТС] 4
Цитата Сообщение от prik Посмотреть сообщение
Что понимается под "экономные"?
Цитата Сообщение от sharpey Посмотреть сообщение
Здесь непонятен вопрос, его бы развернуть.
Я имел в виду, может есть другая похожая функция, которая меньше нагружает процессор.
Задачу более-менее описал в этом сообщении.
0
sharpey
368 / 158 / 37
Регистрация: 21.09.2008
Сообщений: 526
22.01.2019, 12:27 5
Лучший ответ Сообщение было отмечено atztek как решение

Решение

Цитата Сообщение от atztek Посмотреть сообщение
Я имел в виду, может есть другая похожая функция, которая меньше нагружает процессор.
Как вариант делайте учёт работы в потоке с приоритетом idle. Но по событию таймера лучше.
1
Вованя
149 / 145 / 65
Регистрация: 20.02.2014
Сообщений: 531
Завершенные тесты: 1
25.01.2019, 18:20 6
Цитата Сообщение от atztek Посмотреть сообщение
может есть другая похожая функция, которая меньше нагружает процессор
Нет, пока не пройдет указанное время, функция выполнятся не будет (без учета прерываний).
1
25.01.2019, 18:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2019, 18:20

Как работает функция fseek?
помогите разобраться как работает эта функция??

Как работает функция fabs(); ?
Очень хочу узнать как работает функция fabs(); или, если это возможно, подкиньте идею как ее можно...

Как работает функция getchar?
Здравствуйте. Не совсем понимаю как работает функция getchar. Нашёл такое описание: Функция...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru