2011-03-24 9 views
7

tengo algo como esto que es po:¿Cómo añadir temas a impulsar a un vector

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

Tal vez debería añadir punteros para impulsar :: hilo en el vector, pero entonces yo no sé cómo para agregar subprocesos asignados dinámicos, ¿cómo debo hacer para que esto funcione?

Gracias.

Respuesta

23
  • Debe tener un compilador con movimiento semántica apoyados con el fin de hacer su trabajo de código,
  • o utilizar vector<shared_ptr<boost::thread>> con un código como:

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

+1

gracias, thread_groups trabajó para mí, no sabía nada de ellos, aprendí algo nuevo :) – Kobe

+1

¿Podría ser útil si explica por qué no funciona? – nabulke

+1

@nabulke - No funciona, porque no puede copiar un hilo. ¿Eso lo convertiría en dos hilos? Funcionará mejor en C++ 0x donde puede mover objetos en lugar de copiarlos. –