Здравствуйте, B0FEE664, Вы писали:
BFE>А можно поинтересоваться для какой задачи не подходит стандартный std::async ?
А он разве чем-то похож на пул потоков?
Вообще, такой библиотеки действительно не хватает, ведь на большинстве платформ есть что-то родное (TreadPool на Windows, GSD на OS X), а обертки нет. Беда
Re: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, SаNNy, Вы писали:
SNN>Под Windows. Желательно с поддержкой лямбд (С++1) и одним хедером. И чтобы компилировалась 13 студией...
В boost asio вполне себе годный
Re[2]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, B0FEE664, Вы писали:
BFE>А можно поинтересоваться для какой задачи не подходит стандартный std::async ?
А как в std::async ограничить количество используемых потоков?
Re[2]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, SаNNy, Вы писали:
SNN>>Под Windows. Желательно с поддержкой лямбд (С++1) и одним хедером. И чтобы компилировалась 13 студией...
CS>Вот нагуглилось: https://github.com/Tyler-Hardin/thread_pool
Пробовал. Отказалась компилироваться в 13-ой студии
Re[3]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, kaa.python, Вы писали:
BFE>>А можно поинтересоваться для какой задачи не подходит стандартный std::async ?
KP>А он разве чем-то похож на пул потоков?
В майкрософтовской реализации std::async используется пул потоков, но вот как там ограничить максимальное количество — хз. А мне как раз это и нужно
Re[2]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, ReanGD, Вы писали:
RGD>Здравствуйте, SаNNy, Вы писали:
SNN>>Под Windows. Желательно с поддержкой лямбд (С++1) и одним хедером. И чтобы компилировалась 13 студией... RGD>В boost asio вполне себе годный
Для него надо ставить boost целиком или можно взять только .h/.cpp файлы?
Re[3]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, SаNNy, Вы писали:
SNN>Здравствуйте, ReanGD, Вы писали:
RGD>>Здравствуйте, SаNNy, Вы писали:
SNN>>>Под Windows. Желательно с поддержкой лямбд (С++1) и одним хедером. И чтобы компилировалась 13 студией... RGD>>В boost asio вполне себе годный
SNN>Для него надо ставить boost целиком или можно взять только .h/.cpp файлы?
Вообще asio — header only, насколько я помню. Но не знаю насколько там внутри много завязок на всякие бустовые мьютексы, потоки и т.п.
Re[3]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, kaa.python, Вы писали:
BFE>>А можно поинтересоваться для какой задачи не подходит стандартный std::async ? KP>А он разве чем-то похож на пул потоков?
Здравствуйте, ReanGD, Вы писали: RGD>Вообще asio — header only, насколько я помню. Но не знаю насколько там внутри много завязок на всякие бустовые мьютексы, потоки и т.п.
Да, он немало тянет не-header-only из буста. Потоки, время, файловую систему тянуло точно.
Re[3]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, SаNNy, Вы писали:
BFE>>А можно поинтересоваться для какой задачи не подходит стандартный std::async ? SNN>А как в std::async ограничить количество используемых потоков?
Понятно. Это имеет смысл. Я не знаю способа ограничить количество используемых потоков.
PS Можно, конечно, ограничить количество исполняемых тасков, добавив синхронизирующий объект (семафор) в начало каждой исполняемой функции, но это уже велосипед.
И каждый день — без права на ошибку...
Re[5]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, Went, Вы писали:
W>Здравствуйте, ReanGD, Вы писали: RGD>>Вообще asio — header only, насколько я помню. Но не знаю насколько там внутри много завязок на всякие бустовые мьютексы, потоки и т.п. W>Да, он немало тянет не-header-only из буста. Потоки, время, файловую систему тянуло точно.
Есть Standalone Asio:
https://think-async.com/Asio/AsioStandalone
When using a C++11 compiler, most of Asio may now be used without a dependency on Boost header files or libraries. To use Asio in this way, define ASIO_STANDALONE on your compiler command line or as part of the project options.
Re[4]: Библиотеку для организации ThreadPool посоветуйте
Здравствуйте, B0FEE664, Вы писали:
BFE>Понятно. Это имеет смысл. Я не знаю способа ограничить количество используемых потоков.
Стандарт в этом месте будет расширятся, есть executors proposal. Автор Asio сделал соответствующую библиотеку.
В Boost.Thread уже добавили что-то из этого, пока правда experimental.
Здравствуйте, Went, Вы писали:
W>Здравствуйте, ReanGD, Вы писали: RGD>>Вообще asio — header only, насколько я помню. Но не знаю насколько там внутри много завязок на всякие бустовые мьютексы, потоки и т.п. W>Да, он немало тянет не-header-only из буста. Потоки, время, файловую систему тянуло точно.
Можно взять саму Asio c think-async.com, там практически полная header-only реализация (подробнее в документации)