我有一個函數需要每次調用不同數量的線程(我正在做一些性能計算,因此需要知道性能何時開始惡化)。調用傳遞給應用程序的線程數不同的函數
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