Каковы преимущества/недостатки использования многопоточных классов C++ 11 по сравнению с теми, которые были найдены в Boost? Я буду использовать только Linux, поэтому я не требую переносимости. Есть ли недостатки в одной из библиотек? Любые известные ограничения? Лучший синтаксис?C++ 11 Thread vs Boost Thread есть какая-то разница?
ответ
В целом, классы повышения - это только обертки вокруг функций/объектов, которые существуют в данной ОС. Их главным преимуществом является то, что boost содержит версии, написанные для большинства операционных систем, поэтому оболочка обеспечивает переносимость, которую исходные функции/объекты иногда нет.
Если вам больше не нужна поддержка, я бы настоятельно рекомендовал использовать стандартные потоки C++ 11.
Причины:
повышение не будет предоставлять больше, чем система позволяет
ваш код не будет иметь какой-либо обертки над головой (однако маленький это может быть)
поддержки наддува для C++ 11 потоков - это новая функция, и я опасаюсь, что это может привести к некоторым ошибкам в реализации boosts
вы не должны полагаться на библиотеки форсировки и сэкономите время компиляции и компоновки их и т.д.
вам не придется обновлять импульс, потому что вы не будете использовать его
Конечно, повышение имеет некоторые плюсы также:
многие знают, повысить и код (возможно) будет легче читать
, если вы решите, что вам нужно портировать код, который вы, возможно, легче (хотя C++ 11 является стандартным, так что где-то по линии все компиляторы реализовать)
Привет, относительно «у вашего кода не будет каких-либо накладных расходов на обертку (сколь бы мала это ни была)», поэтому вы теоретически говорите, что классы C++ 11 будут более эффективными? – user997112
@ user997112 AFAIK boost использует потоки C++ 11, если это возможно, поэтому для обертывания вокруг них должны быть некоторые накладные расходы. – Dariusz
@ Dariusz нет, это не так, это 2 совершенно разных продукта. –
Стандартные потоки имеют преимущество в том, стандартизированный, поэтому переносимый в любую совместимую реализацию.
Библиотека потоков Boost более или менее идентична; стандартная библиотека была основана на этой библиотеке, и была предпринята попытка сделать Boost совместимой реализацией стандарта. Она имеет несколько расширений, которые могут быть полезны, в том числе:
join
с тайм-аут- прерывания нити
- групп потоков
- дополнительных типов замков
- 1. C++ 11 thread vs boost thread
- 2. PThread vs boost :: thread?
- 3. Porting C++ 11 std :: thread to boost :: thread compile issues
- 4. boost strand vs single thread
- 5. C++ boost thread delay
- 6. C++ 11 thread wait
- 7. Is boost :: thread thread-safe?
- 8. boost thread with C++ 11lambda
- 9. Background thread vs UI thread
- 10. C++ Ошибка привязки (Boost thread)
- 11. Linking Boost thread library
- 12. Thread safe counter C++ 11
- 13. C++ 11 thread error runtime
- 14. C++ 11 thread unknown output
- 15. C++ 11 thread wrapper function
- 16. C++ boost thread и mutex
- 17. C++ 11 thread-safe queue
- 18. Многопоточность: apache portable runtime vs boost :: thread?
- 19. Boost thread condition variable three thread
- 20. Разница между Boost Thread и thread_group
- 21. Boost thread not calling thread function
- 22. Boost :: Thread/C++ 11 std :: thread, хотите разбудить рабочий поток при условии
- 23. Использование boost :: lambda with boost :: thread
- 24. Thread vs ThreadPool
- 25. Thread sleep VS wait condition
- 26. Зачем boost :: thread constructor не принимает параметр boost :: thread :: attributes?
- 27. boost :: thread без всплеска?
- 28. boost :: condition_variable thread safety?
- 29. Boost thread_group thread limiter
- 30. boost thread error
Да, есть и такие: 1) [Что нужно, std :: thread или boost :: thread] (http://stackoverflow.com/questions/12365196/what-to-prefer-stdthread-or-boost-threads), 2) [std :: atom vs boost: atomic] (http://stackoverflow.com/questions/9551750/c-stdatomic-vs-boost-a tomic) и 3) [Почему стандартный комитет C++ отклонил boost :: shared_mutex] (http: // stackoverflow.com/questions/4659295/why-c0x-standard-Committee-reject-boostshared-mutex) – jogojapan
@itwasntpete На самом деле, многое изменилось в Boost.Thread за последние 2 года. –