2010-03-08 17 views
6

Necesito un mecanismo de comunicación entre hilos rápido para pasar trabajos (void*) desde TBB tareas a varios trabajadores que están en operaciones de ejecución/bloqueo. Actualmente estoy buscando en usar pipe() + libevent. ¿Existe una alternativa más rápida y más elegante para su uso con Intel Threading Building Blocks?Mecanismo de comunicación entre hilos rápido

+0

Variables globales? – kennytm

Respuesta

6

Debería poder simplemente usar la memoria estándar con bloqueos de mutex, ya que los hilos comparten el mismo espacio de memoria. La solución pipe() + libevent parece más apropiada para la comunicación entre procesos donde cada proceso tiene un espacio de memoria diferente.

+1

Gracias por su respuesta. Supongo que usaré concurrent_bounded_queue para eso :) – Stan

2

Echa un vistazo Implementing a Thread-Safe Queue using Condition Variables. Utiliza una cola STL, un mutex y una variable de condición para facilitar la comunicación entre hilos. (No sé si esto es aplicable a Intel Threading Building Blocks, pero como TBB no se menciona en la pregunta/título, supongo que otros terminarán aquí como yo lo hice, buscando un mecanismo de comunicación entre hilos que sea no IPC. Y este artículo podría ayudarlos, al igual que me ayudó.)

Cuestiones relacionadas