Предположим, у меня есть эта функция big_task()
, которую я могу разделить между потоками для ускорения.Многопоточность для выполнения одной задачи в C++
Способ решения этой проблемы при многопоточности состоит в вызове _beginthread()
для каждой задачи функции, а затем ждать окончания всех потоков, не так ли?
Как я узнаю, что это будет эффективно и действительно поможет свести к минимуму big_task()
время работы?
Я также слышал, что эффективность многопоточности зависит от платформы и оборудования клиента. Это означает, что это то, что мне нужно запросить и в начале моей программы.?
Еще один вопрос, при кодировании в Windows лучше ли использовать CreateThread()
, а не _beginthread()
? Я пишу кросс-платформенные приложения, но если CreateThread()
более эффективен, чем я мог бы специализировать мой код для использования в Windows.
Можете ли вы пролить свет на тип задач? (networking, db-access, disk-io, cpu time?) – Stefan
, если вы используете C++ 11, я считаю, что вместо этого вы можете использовать 'std :: thread'. – Default
Ну, во-первых, если вы работаете в многопроцессорной/многоядерной системе, то, конечно, многопоточность будет быстрее. –