Хорошая библиотека c ++ для многопоточности

Я предпочитаю библиотеки, основанные исключительно на pthreads. Для чего нужна хорошая библиотека c ++ для многопоточности?

Ответов (4)

Решение

Некоторое время назад я смотрел некоторые варианты. Вот некоторые:

  • Boost Thread - это самый стандартный выбор. Boost - самая стандартная библиотека для C++, которой нет в официальном стандарте.
  • POCO - имеет поддержку потоков и многое другое. Это мой предпочтительный выбор, потому что он позволяет вам устанавливать приоритеты потоков, чего не поддерживает boost. Приоритеты потоков важны для моей области приложения (мягкое реальное время).
  • Zthread - Похоже, хорошая библиотека. У меня нет опыта с этим.
  • ACE - хорошо известная библиотека. У меня нет опыта с этим.

Затем у вас есть библиотеки, которые позволяют работать на более высоком уровне абстракции, например, блоки построения потоков .

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

  • Boost Threads кажется довольно очевидным предложением.
  • Также, если вам нужен параллелизм, но вы не хотите так много играть с потоками, чем, возможно, Futures (см. Также списки рассылки Boost)?

Как насчет повышения потоков?

Boost.Thread позволяет использовать несколько потоков выполнения с общими данными в переносимом коде C++. Он предоставляет классы и функции для управления самими потоками, а также другие для синхронизации данных между потоками или предоставления отдельных копий данных, специфичных для отдельных потоков.