2017-06-16 2 views
0

est-il une différence entre les deux variables suivantes:Différence entre Mutex et Semaphore = 1?

Mutex m; 
Semaphore s = 1; 

Je pense qu'ils sont les mêmes, mais dans une vidéo que je regarde sur une formule pour le lecteur/problème de l'écrivain, il dit d'utiliser 5 sémaphores, chaque d'entre eux à partir de la valeur de 1. Je trouve cela intéressant parce que je pensais que si vous avez un sémaphore à la valeur de 1, alors vous utiliseriez simplement un mutex.

+0

@DougCurrie Merci. Je n'aurais jamais su rechercher * Binary Semaphore *. Cela a toutes les informations dont j'avais besoin. – Hatefiend

Répondre

0

Pensez à Mutex comme étant dans un sous-ensemble de la définition d'un sémaphore.

Il existe une bonne réponse sur Stack Overflow ici: Difference between binary semaphore and mutex.

Mutex peut être libéré que par thread qui l'avait acquise, alors que vous pouvez signaler sémaphores de tout autre fil (ou processus), de sorte sémaphores sont mieux adaptés à certains problèmes de synchronisation comme producteur-consommateur.