-1

假设我有一个返回地图的函数,如:

std::map<std::string,std::string>  functionname(string abc123)

如何使用 boost 线程将不同的字符串传递给不同线程中的同一个函数?(返回的值存储在不同的变量中)

4

1 回答 1

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
}
于 2013-01-17T19:42:31.163 回答