Как Вы добавляете синхронизированную задержку с программой C++?

Создайте файл ivy.xml для отображения зависимостей вашего проекта:


    
    
    
        
        ..
    

Загрузка этих банок и их транзитивных зависимостей теперь может быть выполнена одним из двух способов.

Команда -line

Ivy может быть запущен как программа командной строки . Следующий пример будет загружен в локальный каталог «lib»:

java -jar ivy-2.2.0.jar -ivy ivy.xml -retrieve "lib/[artifact].[ext]"

ANT build

ivy лучше всего использовать, когда он интегрирован в вашу сборку ANT. Следующий пример предназначен для загрузки баннеров в локальный каталог lib и генерирует отчет HTML для анализа зависимости.


    

    

71
задан 17 of 26 21 April 2009 в 17:34
поделиться

9 ответов

Win32: Sleep(milliseconds) что Вы что

Unix: usleep(microseconds) то, что Вы хотите.

сон () только занимает много секунд, который является часто слишком длинным.

68
ответ дан Uli Köhler 24 November 2019 в 12:50
поделиться
#include <unistd.h>
usleep(3000000);

Это будет также спать в течение трех секунд. Можно совершенствовать числа немного больше все же.

30
ответ дан Samir Talwar 24 November 2019 в 12:50
поделиться

Вы хотите что-то как простое как

sleep(3);
12
ответ дан J.J. 24 November 2019 в 12:50
поделиться

Обратите внимание, что это не гарантирует, что количество времени, которым сны потока будут где угодно близко к периоду сна, это только, гарантирует, что количество времени перед потоком продолжается, выполнение будет, по крайней мере, желаемой суммой. Фактическая задержка будет варьироваться в зависимости от обстоятельств (особенно нагрузка на рассматриваемую машину) и может быть порядками величины выше, чем желаемое время сна.

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

8
ответ дан Wedge 24 November 2019 в 12:50
поделиться

Можно также использовать выбор (2), если Вы хотите точность микросекунды (это работает над платформой, которые не имеют usleep (3))

, следующий код будет ожидать в течение 1,5 секунд:

#include <sys/select.h>
#include <sys/time.h>
#include <unistd.h>`

int main() {
    struct timeval t;
    t.tv_sec = 1;
    t.tv_usec = 500000;
    select(0, NULL, NULL, NULL, &t);
}

'

3
ответ дан Mathias Brossard 24 November 2019 в 12:50
поделиться

Синтаксис:

пустой сон (неподписанные секунды);

сон () приостанавливает выполнение за интервал (секунды). С вызовом для сна текущая программа приостановлена от выполнения за число секунд, определенных секундами аргумента. Интервал точен только к самой близкой сотой части секунды или с точностью часов операционной системы, какой бы ни менее точно.

0
ответ дан GEOCHET 24 November 2019 в 12:50
поделиться

Да, сон является, вероятно, предпочтительной функцией здесь. Обратите внимание, что время, переданное в функцию, является наименьшим количеством времени, вызывающий поток будет неактивен. Так, например, при вызове сна с 5 секундами Вам гарантируют, Ваш поток будет спать в течение по крайней мере 5 секунд. Мог быть 6, или 8 или 50, в зависимости от того, что делает ОС. (Во время оптимального выполнения ОС это будет очень близко к 5.)
Другая полезная функция функции сна должна передать в 0. Это вынудит контекстное переключение покинуть Ваш поток.

Некоторая дополнительная информация:
http://www.opengroup.org/onlinepubs/000095399/functions/sleep.html

2
ответ дан Marcin 24 November 2019 в 12:50
поделиться

Многие другие обеспечили хорошую информацию для сна. Я соглашаюсь с Wedge что сон редко наиболее подходящее решение.

, Если Вы спите, поскольку Вы ожидаете чего-то, тогда Вы более обеспечены на самом деле ожидание той вещи/события. Взгляд на Условные переменные для этого.

я не знаю то, что ОС Вы пытаетесь сделать это на, но для поточной обработки и синхронизации, на которую Вы могли обратиться библиотеки Boost Threading ( условие Varriable Повышения).

Перемещение теперь в другое экстремальное значение, при попытке ожидать исключительно коротких периодов тогда, существует несколько параметров стиля взлома. Если Вы работаете над своего рода встроенной платформой, где 'сон' не реализован тогда, можно попробовать простой цикл (за и т.д.) с пустым телом (осторожны, компилятор не оптимизирует его далеко). Конечно, время ожидания является иждивенцем на определенных аппаратных средствах в этом случае. Для действительно короткого 'ожидает', можно попробовать блок "только для указанных целей". Я высоко сомневаюсь, что это то, что Вы после, но не зная, почему необходимо ожидать, трудно быть более конкретным.

0
ответ дан 24 November 2019 в 12:50
поделиться

В Windows можно включать библиотеку окон и использовать "Сон (0)"; спать программа. Это принимает значение, которое представляет миллисекунды.

0
ответ дан Zee JollyRoger 24 November 2019 в 12:50
поделиться