Nous avons trois threads ou plus, pouvons-nous utiliser seulement deux sémaphores (sémaphores binaires ou de comptage)? Une idée qui m'est venue à l'esprit est de jouer avec le nombre de sem_post-s et sem_wait-s. Toutes les idées, stratégies sont les bienvenues.est-il possible d'utiliser seulement deux sémaphores pour synchroniser trois threads ou plus?
Répondre
Un sémaphore est utilisé pour protéger une ressource partagée. Vous avez besoin d'autant de sémaphores que de ressources partagées, ce n'est pas lié au nombre de threads qui accèdent à ces ressources.
si vous avez une simultanéité entre les threads et la condition de concurrence se produit, un sémaphore ne suffit pas. c'est-à-dire qu'il y a trois threads qui exécutent plusieurs itérations. Si je veux que ces trois threads s'exécutent dans un ordre particulier, disons: itération 0 - threadA, threadB, threadC; itération 1 - threadA, .... plusieurs sémaphores doivent être implémentés. Jusqu'à présent, j'ai découvert qu'il pouvait y avoir deux sémaphores. Cependant, pourrait-il être fait avec un seul? – user228137
Pourquoi utiliser des threads s'ils sont exécutés séquentiellement? répondre à cette question peut révéler des ressources cachées que vous souhaitez protéger. – mouviciel
- 1. Comment synchroniser trois threads?
- 2. Comment synchroniser deux ou plusieurs serveurs Mercurial?
- 3. trois ou plus racine dans js
- 4. Comment deux threads ou plus sont-ils synchronisés à l'aide d'une minuterie dans le noyau Windows?
- 5. Comment synchroniser deux dépôts Subversion?
- 6. Comment synchroniser les groupes de threads JMeter
- 7. Est-il possible d'éviter une course de réveil avec seulement des sémaphores POSIX? Est-ce bénin?
- 8. Comment synchroniser deux MediaPlayers ou MediaElements dans WPF?
- 9. dossiers de comptage ayant trois ou plus d'articles
- 10. Comment synchroniser deux NSManagedObjectContext
- 11. Façon de synchroniser deux cœurs en simulation
- 12. synchroniser deux base de données mysql pour deux machine distante
- 13. Tunneling deux objets ou plus
- 14. Pour plusieurs threads ou pas
- 15. Fonction précédente, mais pour deux (ou plus) lignes précédentes
- 16. synchroniser deux SQL Server 2005
- 17. comment faire la zone de texte pour autoriser seulement trois chiffres avec trois points décimaux?
- 18. Synchroniser avec Google Agenda des deux côtés
- 19. Comment synchroniser les threads cuda quand ils sont dans la même boucle et nous devons les synchroniser pour exécuter seulement une partie limitée
- 20. Synchroniser deux SqlExpress en utilisant NHibernate
- 21. incrémenter la valeur de sémaphores POSIX de plus de 1
- 22. Sémaphores nommés en Python?
- 23. SequenceMatcher pour plusieurs entrées, pas seulement deux?
- 24. Synchronisation de deux threads
- 25. Comment deux threads ou processus concurrents peuvent-ils communiquer?
- 26. Communiquer entre deux threads
- 27. deux threads appellent DownloadProgressChangedEventHandler
- 28. Échange utilisant deux variables et non trois?
- 29. Deux threads et 1 service, ou un service par thread?
- 30. Deux activités ou plus en android
La réponse de mouviciel est précise et probablement suffisante - le nombre de sémaphores est vraiment indépendant du nombre de threads. Je sémaphore simple peut synchroniser des centaines de discussions, mais peut-être qu'il y a plus à votre question. Pouvez-vous élaborer un peu sur ce que vos threads font et pourquoi ils ont besoin d'être synchronisés? –