2011-03-08 6 views
4

Je n'ai pas été en mesure de trouver un bon exemple qui montre comment utiliser boost :: interprocess :: named_semaphore (même pas sur le site web de Boost).Boostez les exemples named_semaphore?

Je pouvais voir quelque chose à propos de interprocess_semaphore, mais ils semblent être très différents et je ne sais pas si ce qui est montré pour l'un s'applique à l'autre.

Quelqu'un peut-il me donner des liens vers de tels exemples /tutorials/documentation?

Merci.

Répondre

2

La principale différence entre interprocess_semaphore et named_semaphore est que le interprocess_semaphore est partagé avec l'aide de la mémoire partagée, alors que named_semaphore n'a pas besoin d'être construit (en utilisant construction) ou stockées dans la mémoire partagée comme référencée par son nom au lieu de façon anonyme . Les méthodes de synchronisation nommées utilisent différents objets pour accéder à la même ressource, mais utilisent la même ressource, où les méthodes de synchronisation anonyme doivent partager le même objet dans shared_memory ou un autre mécanisme pour accéder à la même ressource.

Cela signifie que named_semaphore a 3 constructeurs qui ouvrent ou créent la méthode de synchronisation référencée, par rapport à interprocess_semaphore qui n'a que 1 constructeur.

Les deux types de sémaphores implémentent post, wait, try_wait et timed_wait comme prévu. Des informations supplémentaires sont disponibles here et here.

Un exemple d'utilisation named_semaphore est disponible here

+0

je jeter un oeil à votre lien bientôt ... Merci. – Pietro

+0

Je suis confus par ceci: "Les deux types de sémaphore implémentent wait, notify_one et notify_all comme prévu." Je n'ai jamais vu de sémaphore qui implémente quelque chose comme "notify_all". Il semble que ces sémaphores Boost implémentent post, wait, try_wait et timed_wait. Est-ce ce que vous vouliez dire, ou est-ce que je manque quelque chose? –

+0

Vous avez décrit named_condition, qui n'est pas la même chose que named_semaphore. – Jon

Questions connexes