У меня есть функция, которую нужно вызывать с различным количеством потоков каждый раз (я делаю некоторые вычисления производительности, поэтому вам нужно знать, когда производительность начинает ухудшаться). Пример приведен ниже:Вызов функции с различным количеством потоков, переданных приложению
getTime() {
return 0;
}
int main() {
boost::threadpool::thread_pool<> threads(nThreads);
for(int j = 0; j <= nLines; j++){
threads.schedule(boost::bind(&getTime, nThreads, 1));
}
threads.wait();
}
Где, nThreads: Значение дано в командной строке
Мой вопрос, будет это даст мне желаемого результата, чтобы бы этот вызов функции «GetTime» с 'nThreads' каждый раз, когда цикл for получает доступ к программе? Или мне нужен другой метод, чтобы узнать то же самое?
то, что я действительно хочу сделать это:
boost::threadpool::thread_pool<> threads(nThreads);
// start a new thread that calls the "getTime" function
for(int j = 0; j <= nLines; j++){
//threads.schedule(boost::bind(&getTime, nThreads, 1));
threads.schedule(boost::bind(&getTime, 0, nLines, pc));
}
(не уверен, что из выше является правильным.)
GetTime() функция должна работать с указанным количеством строк который я получаю из текстового файла и даю каждой строке api, чья производительность я хочу рассчитать. но это не связано с вопросом, который у меня есть.
Я хочу каждый раз вызывать функцию с различным количеством потоков и рассчитать, сколько времени потребовалось каждому потоку. что было общее время с 1 нить, что было общее время, затраченное на 2 нитями, чтобы закончить и т.д.
извините, мой плохой. не утверждал, что я хочу, чтобы процесс выполнялся для нескольких разных значений, которые хранятся в этой переменной строки и инициализируются в getTime(). Следовательно, требование для цикла FOR. то, что вы дали, будет означать другую петлю FOR внутри той, которую я дал. исправить меня, если не так? – gagneet
Прошу прощения, я все еще не понимаю, думаю. Я понимаю, что вы хотите сделать ** какую-то работу ** (я точно не знаю) и распределить ее по предоставленному числу потоков. Эта работа, похоже, вызывает nbLines для функции getTime, но я не уверен. И я не знаю, как вы хотите использовать nbLines во всем этом. Пожалуйста, постарайтесь уточнить! –
Я отредактировал главный вопрос. сообщите, если требование все еще неясно. – gagneet