Как я могу оценить минимальный объем работы, ради которого стоит создать новый поток? Меня в основном интересует C++11 std::thread
.
Длинное объяснение. Я пытался ускорить наше приложение, поэтому я продолжил распараллеливать низкоуровневую функцию, которая выполняет очень мало простых операций (например, неравенства и присваивания) в цикле. Однако эта функция занимает больше всего времени в приложении. Поэтому я попытался распараллелить цикл, порождающий два потока для двух последовательных индексов цикла, но это убило производительность (я не могу точно сказать фактор замедления, но он может быть примерно в 100 раз).
std::function
объектов, чтобы потоки извлекали из этой очереди и выполняли объект. - person David Schwartz   schedule 17.04.2015