Я нахожусь в стадии обновления некоторого унаследованного кода на C++ до C++ 11 под Linux с использованием gcc. При попытке установить приоритеты я задал следующий вопрос. Может ли быть какое-либо преимущество при обмене вызова на usleep
с вызовом std::this_thread::sleep_for
? В коде я говорю о том, что работающий поток должен ждать очень короткий период. Поэтому мне не нужны какие-либо дополнительные функции, такие как прерывание сна.Должен ли я обменять спящий режим by sleep_for
ответ
Да. std::this_thread::sleep_for
указан стандартом C++ 11 и, следовательно, является переносным решением в любой системе с компилятором C++ 11 и стандартной библиотекой.
usleep
указан POSIX.1-2001 (и объявлен устаревшим!), Что означает, что он может (надежно) использоваться только в POSIX-совместимых системах.
POSIX.1-2008 удаляет спецификацию usleep
, в пользу nanosleep
. По этой причине std::this_thread::sleep_for
- намного лучший выбор.
Я понимаю, что я должен предпочесть функции std-соответствия функций POSIX. Но следует ли ожидать каких-либо побочных эффектов? Может ли sleep_for вести себя иначе, чем спящий? Могло ли быть вознаграждение за производительность или штраф? –
Не так далеко, насколько я вижу. Оба указаны для спящего режима для _at наименьшей длительности (т. Е. Она может быть длиннее, в зависимости от планирования и т. Д.) – Andrew
Что касается проблем производительности, единственным разумным способом действий является _profile_ эти два решения. Я не могу себе представить, что между ними будет значительная разница; во всяком случае, по сравнению с временем ожидания. – Andrew
- 1. Должен ли я устанавливать спящий режим в weblogic?
- 2. Спящий режим: ИЛИ в ORDER BY статья
- 3. Спящий режим
- 4. Должен ли обновляться спящий режим/JPA OneToMany с обеих сторон?
- 5. Когда я должен обменять токены Google (время)
- 6. Обычная смена + спящий режим?
- 7. спящий режим вставки?
- 8. Синхронизация и спящий режим
- 9. Спящий режим работы
- 10. Спящий режим: @OrderBy
- 11. Спящий режим и параллелизм
- 12. спящий режим SQL-запрос
- 13. Рекомендуется ли спящий режим в гетерогенной среде?
- 14. двунаправленный спящий режим
- 15. Спящий режим Критерии: спящий режим левого соединения без ассоциации
- 16. Как спящий режим?
- 17. спящий режим в Windows
- 18. Весенний опрос + Спящий режим
- 19. Восстановить спящий режим
- 20. Запрос на спящий режим
- 21. спящий режим отложенной загрузки
- 22. Спящий режим с пружиной
- 23. Устранение и спящий режим
- 24. Спящий режим с Liquibase
- 25. Комбинированный ключ Спящий режим
- 26. Спящий режим без объектов
- 27. Как создать составной спящий спящий режим JPA?
- 28. Спящий режим: виртуальный столбец
- 29. спящий режим и сроки
- 30. спящий режим сохраняется отображение
Да, это улучшит переносимость кода. –
Каждый раз, когда вы меняете код, вы рискуете ввести ошибку так, если это не сломано, не исправляйте ее. Однако, если вы все-таки исправляете функцию, почему бы не перейти на более портативный стандартный код? – Galik