2010-11-03 18 views
16

¿Es posible crear un grupo de subprocesos con el subproceso de boost? Estaba buscando todas las libs de boost y no pude encontrar un gestor de grupo de hilos (o algo así) ... ¿Hay alguna manera de hacerlo?Creación de un grupo de subprocesos con boost

tnx!

+0

Ver también: http://stackoverflow.com/questions/19500404/how-to-create-a-thread-pool- using-boost-in-c –

+0

Publiqué un ejemplo de subproceso usando boost :: asio aquí. [Ejemplo de subprocesos con el impulso :: asio] [1] [1]: http://stackoverflow.com/questions/31835009/c-threadpool-is-not-running-parallel/31835802 # 31835802 – DannyK

+0

Posible duplicado de [¿Cómo crear un grupo de subprocesos mediante boost en C++?] (Https://stackoverflow.com/questions/19500404/how-to-create-a-threadpool-using-boost- in-c) –

Respuesta

8

Hay un threadpool no oficial (todavía) en aumento. Pero no es un problema implementar uno, especialmente si la gran genericidad no es un objetivo principal. Idea: su subproceso se puede parametrizar con el tipo de TaskType y la cantidad de trabajadores. El TP debe tener la función de controlador que toma TaskType. TP contiene una cola de tareas adicionales. La función de subproceso real simplemente toma una tarea de la cola y llama al manejador pasado. Algo como eso.

+0

Esperaba que ya hayan agregado la biblioteca de subprocesos ... ¿Alguna idea de si se agregará pronto? muchas gracias por su respuesta rápida! – grich

+0

No estoy seguro pero supongo y espero que tanto ThreadPool como Process estén en 1.45 –

+0

La biblioteca de subprocesos se veía bien; Lástima que falta la documentación (muchas páginas indican TODO y advierten que la descripción no está actualizada). Parece que no ha recibido mucha atención desde 2008. –

34

Sé que se ha aceptado una respuesta, si necesita esto ahora, y no se puede tomar la molestia de escribir su propio grupo de subprocesos, podría intentar usar boost asio io_service con una sugerencia de concurrencia (es decir, cuántos subprocesos debería ejecutarse) y luego publicar() cosas en este io_service ... solo una idea ..

+4

Usar boost asio es el camino correcto a seguir. Mejor no administrar el grupo de subprocesos directamente. Igual que Intel Threading Building Blocks (TBB). – hackworks

+0

¿Puedes añadir más al respecto? ¡suena muy interesante! – grich

+13

Consulte este enlace para obtener más información: http://think-async.com/Asio/Recipes – Ralf

Cuestiones relacionadas