我有一个函数需要每次调用不同数量的线程(我正在做一些性能计算,因此需要知道性能何时开始恶化)。调用传递给应用程序的线程数不同的函数
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”功能例子如下每次通过程序访问for循环时都使用'nThreads'?或者我需要其他方法来找出相同的?
我真正想要做的是这样的:
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 2009-04-26 10:49:36