cpprussia C++ Russia 2020 Мск (29.06.2020 — 02.07.2020)

DIY: Thread pool своими руками

img

В стандартной библиотеке C++ до сих пор нет своего тредпула и не всегда удобно добавлять в проект большие зависимости, как Boost, TBB или Qt, только для возможности асинхронного запуска задач. Этот доклад посвящен созданию своего тред пула шаг за шагом с C++17 в качестве единственной зависимости.

<p>В стандартной библиотеке C++ до сих пор нет своего тредпула и не всегда удобно добавлять в проект большие зависимости, как Boost, TBB или Qt, только для возможности асинхронного запуска задач. Этот доклад посвящен созданию своего тредпула шаг за шагом с C++17 в качестве единственной зависимости.</p> <p>В рамках доклада мы увидим, как легко построить свой небольшой тредпул с неплохой скоростью работы и богатым функционалом. Мы прогоним его через бенчмарки и добавим оптимизации на базе их результатов. Также мы затронем вопросы создания одновременно легкого и гибкого публичного интерфейса для работы с этим тредпулом.</p> <p>Доклад основан на библиотеке <a href="https://github.com/dkormalev/asynqro">Asynqro</a>.</p>