假设我有一个返回地图的函数,如:
std::map<std::string,std::string> functionname(string abc123)
如何使用boost线程将不同的字符串传递给不同线程中的相同函数?(返回的值存储在不同的变量中)
答案 0 :(得分:2)
int main()
{
string param1 = ...;
string param2 = ...;
typedef std::map<std::string,std::string> RetT;
boost::future<RetT> f1 = boost::async(boost::launch::async,
boost::bind(functionname, param1));
boost::future<RetT> f2 = boost::async(boost::launch::async,
boost::bind(functionname, param2));
// here they run....
RetT r1 = f1.get(); // waits for f1
RetT r2 = f2.get(); // waits for f2
// Here we have the results in r1 and r2
}