如何将boost线程添加到矢量中

时间:2011-03-24 08:57:31

标签: c++ boost

我有类似的东西是incorect:

vector<boost::thread> vec;
for(int agent = 1; agent <= numAgents; ++agent)
{
    boost::thread agentThread(sellTickets, agent, numTickets/numAgents);
    vec.push_back(agentThread);
}

也许我应该在向量中添加指向boost :: thread的指针,但后来我不知道如何添加动态分配的线程,我该怎么做才能使它工作?

谢谢。

1 个答案:

答案 0 :(得分:24)

  • 您必须拥有支持move-semantics的编译器才能使代码正常工作
  • 或使用vector<shared_ptr<boost::thread>>代码如下:

    vec.push_back(make_shared<boost::thread>(sellTickets, agent, numTickets/numAgents));
    
  • 或使用boost::thread_group