Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [Решено] Ждать не целое кол-во секунд  (Прочитано 1264 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MaksimM

  • Автор темы
  • Участник
  • *
  • Сообщений: 115
    • Просмотр профиля
С помощью sleep можно ждать только целое количество секунд. Как ждать не целое и не загружать процессор. Только не system("sleep 0.1"), т.к это способ не очень хороший.
« Последнее редактирование: 22 Ноября 2010, 10:01:24 от MaksimM »
Единственно стабильная версия - LTS, остальные - беты.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Ждать не целое кол-во секунд
« Ответ #1 : 21 Ноября 2010, 19:03:21 »
sleep 0.5
time sleep 0.1

real 0m0.102s
user 0m0.000s
sys 0m0.000s
все работает
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #2 : 21 Ноября 2010, 19:12:45 »
MaksimM, судя по предоставленному костылю, ты наверное забыл нам сказать про то, к какому языку программирования он относится?

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #3 : 21 Ноября 2010, 19:20:05 »
Функция usleep() позволяет приостановить процесс с точностью до микросекунд, функция nanosleep() - с точностью до наносекунд.

Оффлайн MaksimM

  • Автор темы
  • Участник
  • *
  • Сообщений: 115
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #4 : 21 Ноября 2010, 19:33:56 »
hippi90 большое спасибо.
MaksimM, судя по предоставленному костылю
Чё ещё за костыль?
Единственно стабильная версия - LTS, остальные - беты.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #5 : 21 Ноября 2010, 20:16:32 »
Чё ещё за костыль?

system("sleep 0.1")

А телепатическим способностям hippi90 угадывать язык программирования можно только позавидовать.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #6 : 21 Ноября 2010, 20:29:22 »
А телепатическим способностям hippi90 угадывать язык программирования можно только позавидовать.
За год на этом форуме телепатия развивается очень неплохо! :)

Оффлайн MaksimM

  • Автор темы
  • Участник
  • *
  • Сообщений: 115
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #7 : 22 Ноября 2010, 09:13:12 »
У меня же тут написано system("sleep 0.1"). То есть C/C++.
Единственно стабильная версия - LTS, остальные - беты.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #8 : 22 Ноября 2010, 10:52:20 »
Функция usleep() позволяет приостановить процесс с точностью до микросекунд, функция nanosleep() - с точностью до наносекунд.
;D
Развеселили.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #9 : 22 Ноября 2010, 11:14:41 »
Функция usleep() позволяет приостановить процесс с точностью до микросекунд, функция nanosleep() - с точностью до наносекунд.
;D
Развеселили.
А что здесь весёлого? hippi90 всё правильно говорит..

У меня же тут написано system("sleep 0.1"). То есть C/C++.
А тут действительно весело. Полёт мысли на высоте, как и у ярких представительниц прекрасного пола. Эта функция есть во многих языках, например php, perl и список можно продолжить...

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #10 : 22 Ноября 2010, 11:26:13 »
А что здесь весёлого? hippi90 всё правильно говорит..
Говорит правильно. Но реально про наносекунды говорить можно только с юмором. Это под силу FPGA и то супер-мупер.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Ждать не целое кол-во секунд
« Ответ #11 : 22 Ноября 2010, 21:29:22 »
Говорит правильно. Но реально про наносекунды говорить можно только с юмором. Это под силу FPGA и то супер-мупер.
Насколько мне помнится частота системного тика в Linux является параметром времени компилирования, и для х86 возможны значения 100, 250 и 1000. Т.е. разрешение может быть от 0,01 сек до 0,001 сек, обычно компилят с HZ==250. Тем не менее, API предоставляет возможность работы с большим разрешением, хотя оно и не поддерживается аппаратно.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: [Решено] Ждать не целое кол-во секунд
« Ответ #12 : 23 Ноября 2010, 06:08:10 »
Забыли упомянуть классику жанра.
#include <sys/select.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char** argv) {
    struct timeval tv;
    tv.tv_sec = 0;
    tv.tv_usec = 500;
    int n = select(0, NULL, NULL, NULL, &tv);
    if (n < 0) {
        perror("select");
        return (EXIT_FAILURE);
    }
    if (n == 0) {
        printf("timeout\n");
        return (EXIT_SUCCESS);
    }
    if (n > 0) {
        printf("ahtung O_o\n");
        return (EXIT_FAILURE);
    }
    return (EXIT_SUCCESS);
}

 

Страница сгенерирована за 0.143 секунд. Запросов: 22.