2010-03-08 18 views
6

J'ai besoin d'un mécanisme de communication rapide entre threads pour passer le travail (void*) de TBB à plusieurs travailleurs en cours d'exécution/blocage. Actuellement, je cherche à utiliser pipe() + libevent. Existe-t-il une alternative plus rapide et plus élégante à utiliser avec Intel Threading Building Blocks?Mécanisme de communication rapide entre threads

+0

Variables globales? – kennytm

Répondre

6

Vous devriez pouvoir utiliser la mémoire standard avec des verrous de mutex puisque les threads partagent le même espace mémoire. La solution pipe() + libevent semble plus adaptée à la communication interprocessus où chaque processus a un espace mémoire différent.

+1

Merci pour votre réponse. Je suppose que je vais utiliser concurrent_bounded_queue pour ça :) – Stan

2

Découvrez Implementing a Thread-Safe Queue using Condition Variables. Il utilise une file d'attente STL, un mutex et une variable de condition pour faciliter la communication entre threads. (Je ne sais pas si cela s'applique à Intel Threading Building Blocks, mais puisque TBB n'est pas mentionné dans la question/titre, je suppose que d'autres finiront ici comme moi - à la recherche d'un mécanisme de communication inter-thread qui est Et cet article pourrait les aider, comme il m'a aidé.)