Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Параллельное выполнение задча |
Автор: xTr1m 21.3.2011, 17:58 |
Доброго времени суток. У меня есть алгоритм, в нем три шага. Первые два могут выполняться независимо, тритий должен дождаться первых двух. Сейчас это все выполняется линейно, то есть сначала первый, потом второй и третий. Среда разработки MSVS 2008. Слышал, что в 2010 можно разбивать на задачи и выполнять параллельно на нескольких процессорах одновременно, но студию я сменить не могу. Насколько я понимаю, если просто создам два потока (на первый и второй шаг), то будет загружаться все равно только один процессор. Может есть что-нибудь в boost'е, к примеру. Очень буду благодарен за помощь. |
Автор: KaraKum 21.3.2011, 18:25 | ||
Достаточно разбить на потоки. Параллельное выполнение каких-либо задач в прерогативу студии разработки не входит. Библиотек по потокам много, но лучше использовать http://www.boost.org/doc/libs/1_46_1/doc/html/thread.html. Любая реализация потоков имеет функцию .join(), позволяющую дождаться завершения выполнения потока - какая бы библиотека не была в результате код будет выглядеть примерно так:
|
Автор: xTr1m 21.3.2011, 18:50 |
Спасибо. Я думал что вынесение в поток не распределит нагрузку между процессорами, ошибался. Что же буду делать через потоки. |