Мне нужно выполнить в многоядерной архитектуре огромное количество относительно коротких задач. Для этого я хотел использовать пул потоков фиксированного размера и некоторую надежную реализацию исполнителя.
Я читал об boost :: asio и io_service в этом сообщении. Как создать пул потоков, используя boost в C++? но в нем используются потоки повышения, в то время как во многих местах мой код использует модификатор C++ 11 thread_local для локальных переменных (по соображениям производительности), поэтому я полагаю, что я вынужден использовать C++ 11 потоков.
Совместима ли реализация ускоренного потока с переменными C++ 11 thread_local?
Можно ли просто использовать метод io_service :: run с C++ 11 потоками, вместо этого с boost :: thread?
Можно ли просто использовать метод io_service :: run с потоками С++ 11, вместо этого с boost :: thread?
Да, я использую std::thread
с boost::asio
и он отлично работает. Я также использую std::bind
вместо boost::bind
. Вы можете найти пример здесь
Совместима ли реализация boost thread с переменными thread_local С++ 11?
Я не знаю об этом, но это должно быть неуместно, если вы используете std::thread