2009-06-03 7 views
3

J'ai beaucoup de verrous de rotation dans mon code multithread et la plupart du temps ils attendent que d'autres threads fonctionnent et donc mâchent beaucoup d'utilisation de cpu. En linux, j'utilise normalement pthread_cond_wait et pthread_cond_signal pour mettre en pause un thread et se réveiller quand il est signalé. Y a-t-il quelque chose comme ça dans les bibliothèques boost? Ayant un coup d'oeil rapide je ne pourrais pas trouver n'importe quoi.remplacer le verrou d'essorage avec le signal

Visual Studio 2005

Répondre

1

Vous cherchez un Mutex ou un Sémaphore. La bibliothèque Boost a le support Mutex and Semaphore. Un Mutex est un sémaphore binaire, qui est simplement considéré comme un verrou, permettant à un seul thread de passer par critical section.

Le comptage semaphores peut aider à simplifier certaines situations où un verrou (Mutex) est trop restrictif.

+0

Nupe, j'étais après les variables de condition – Lodle

Questions connexes