@Elnurhan

Как ограничить количество потоков?

Есть задача, посчитать кол-во слов во всех текстовых файлах в заданной директории, с помощью 4-ёх потоков.
Написал решение в однопоточном режиме.
Думаю использовать ThreadPool. Хочется узнать, есть ли способ получше нежели ThreadPool?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 2
maaGames
@maaGames
Погроммирую программы
#incude <omp.h>

void func()
{
std::vector<std::string> allFileNames;

// заполнить вектор путями всех нужных файлов в директории

#pragma omp parallel for num_threads(4)
for( auto & fileName : allFileNames )
{
    // делать всякое

#pragma omp critical
{
  // тут делать всякое без конфликтов между потоками
}

}

}
Ответ написан
Комментировать
Если стоит задача реализации с помощью 4-х потоков, то нужно использовать 4 потока. ThreadPool нужен для гибкой настройки использования потоков, например не больше 4-х в зависимости от входных условий.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы