Creo que todavía no se acepta en Boost, pero es un buen punto de partida: threadpool. Algunos ejemplos de uso, desde el sitio web:
#include "threadpool.hpp"
using namespace boost::threadpool;
// Some example tasks
void first_task()
{
...
}
void second_task()
{
...
}
void third_task()
{
...
}
void execute_with_threadpool()
{
// Create a thread pool.
pool tp(2);
// Add some tasks to the pool.
tp.schedule(&first_task);
tp.schedule(&second_task);
tp.schedule(&third_task);
// Leave this function and wait until all tasks are finished.
}
El argumento "2" al grupo indica el número de subprocesos. En este caso, la destrucción de tp
espera a que finalicen todos los hilos.
¿Cuál es el problema con el impulso? –
@David: no hay subprocesos de subprocesos integrados en Boost, ¿verdad? –
@Steve Townsend: Correcto, lo siento ... pensé que recuerdo uno en boost, pero en realidad no está incluido (no se ha aceptado). Hay uno disponible en http://threadpool.sourceforge.net/index.html –