希望同时多次调用一个函数。我希望使用线程来调用一个函数,该函数将充分利用机器的能力。这是一台8核的机器,我的要求是使用机器cpu从10%到100%以上。
我的要求是使用 boost 类。有什么方法可以使用 boost 线程或线程池库来完成此任务吗?或者其他方式来做到这一点?
另外,如果我每次都必须调用具有不同参数的多个函数(使用单独的线程),那么最好的方法是什么?[使用boost或不使用boost]以及如何?
#include <iostream>
#include <fstream>
#include <string.h>
#include <time.h>
#include <boost/thread/mutex.hpp>
#include <boost/bind.hpp>
using namespace std;
using boost::mutex;
using boost::thread;
int threadedAPI1( );
int threadedAPI2( );
int threadedAPI3( );
int threadedAPI4( );
int threadedAPI1( ) {
cout << "Thread0" << endl;
}
int threadedAPI2( ) {
cout << "Thread1" << endl;
}
int threadedAPI3( ) {
cout << "Thread2" << endl;
}
int threadedAPI4( ) {
cout << "Thread3" << endl;
}
int main(int argc, char* argv[]) {
boost::threadpool::thread_pool<> threads(4);
// start a new thread that calls the "threadLockedAPI" function
threads.schedule(boost::bind(&threadedAPI1,0));
threads.schedule(boost::bind(&threadedAPI2,1));
threads.schedule(boost::bind(&threadedAPI3,2));
threads.schedule(boost::bind(&threadedAPI4,3));
// wait for the thread to finish
threads.wait();
return 0;
}
以上不起作用,我不确定为什么?:-(