cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Пул потоков в стандартной библиотеке #226

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +18, -0 Автор идеи: Osmironov

На сегодняшний момент в std существует класс, позволяющий создавать новые потоки выполнения - std::thread, однако отсутствует реализация пула потоков, который мог бы работать с целой очередью задач, балансируя нагрузку между потоками. Я не считаю себя крупным специалистом в C++, однако, на сколько я знаю, реализации такого пула содержатся в библиотеке tbb, в библиотеках ОС QNX, в множестве open-source проектов. Почему бы не внести одну из них (или несколько) в стандарт?

P.S. возможно, над таким предложением уже работают, прошу меня простить в этом случае. Повторюсь, что не являюсь крупным профессионалом.

apolukhin commented 3 years ago

yndx-antoshkka, 2 октября 2017, 18:34 Подобное уже долго обсуждается и будет называться Executors http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0443r2.html . Executors должны будут хорошо интегрироваться с разными частями стандартной библиотеки, например с Networking TS.

На данный момент там достаточно сложный дизайн, есть предложения по упрощению http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0688r0.html

Комитет хочет успеть сделать в виде TS к С++20, но это оптимистичный план.