Quelqu'un peut-il me donner un exemple d'utilisation d'un mécanisme de verrouillage basé sur le futex? (pour CPU x86 de muticore, CentOS)Mécanisme de verrouillage à base de Futex
Répondre
Les mutex de Pthreads sont implémentés en utilisant des futex sur les versions récentes de Linux. Pthreads est l'API de threading C standard sous Linux, et fait partie du standard Posix, vous pouvez donc facilement transférer votre programme vers d'autres systèmes de type Unix. Vous devriez éviter d'utiliser les futex directement sauf si vous avez des besoins très inhabituels, car ils sont très difficiles à utiliser correctement - utilisez pthreads, ou une API spécifique au langage de niveau supérieur (qui utilisera presque certainement pthreads).
Jetez un oeil à https://github.com/avsm/ipc-bench. Ils utilisent futex dans l'implémentation de pipe à mémoire partagée.
Spécifiquement, vous pouvez vérifier this code.
Exemple de travail: pthreads mutex utilise des verrous futex. Exemple de code: Ceux-ci ont été faits dans les mois de ce poste en '10 mais sont toujours à jour.
http://meta-meta.blogspot.com/2010/11/linux-threading-primitives-futex.html https://github.com/lcapaldo/futexexamples
exemple de cas d'utilisation: IPC et de synchronisation inter-processus sont le seul exemple de la raison pour laquelle on doit utiliser un futex dans l'espace utilisateur. Les mutex pthread fonctionneront pour le multi-thread sauf pour les cas extrêmes, mais le multi-processus manque de mécanismes de verrouillage haute performance ainsi que de types de verrous.
- 1. .NET Mécanisme de verrouillage à filetage à distance
- 2. ASP.NET MVC Mécanisme de verrouillage d'objet
- 3. Verrouillage de 4 octets à un seul graveur/plusieurs lecteurs futex
- 4. Mécanisme de verrouillage entre processus sur plusieurs machines
- 5. comment gérer le mécanisme de verrouillage-écriture dans django
- 6. Comment changer le mécanisme de verrouillage dans Alternative PHP Cache (APC)?
- 7. Mesure de la latence de mutex ou de futex
- 8. Trop d'appels futex()
- 9. question de verrouillage de base en C#
- 10. Problème de verrouillage de la base de données
- 11. mécanisme de distribution, Rational ClearCase
- 12. Quel mutex/verrouillage/mécanisme d'attente à utiliser lors de l'écriture d'une application de conversation avec Tornado Web Framework
- 13. Paradox: requête sans verrouillage du fichier de base de données
- 14. Théorie du mécanisme de mise à jour
- 15. mécanisme de gouvernance contenu
- 16. mécanisme de contrôleur codeigniter
- 17. Mécanisme de réseaux P2P
- 18. Mécanisme de localisation PHP
- 19. Mécanisme d'injection de dépendances
- 20. Verrouillage de sqlalchemy
- 21. Verrouillage de la chaîne via le verrouillage
- 22. Verrouillage d'une base de données SQL Server avec PHP
- 23. Verrouillage des bases de données
- 24. concevoir un mécanisme de recherche d'utilisateur flexible
- 25. mySQL - Verrouillage de table vs rangée de verrouillage
- 26. problèmes de verrouillage à l'aide SimpleReadWriteEJBLock
- 27. À propos de MVC 2 Afficher le mécanisme de mappage
- 28. Verrouillage de l'écran personnel
- 29. Problème de verrouillage MySQL
- 30. Verrouillage avec S3
Qu'en est-il de la dernière version de CentOS 5.5? Les mutex de Pthreads sur CentOS 5.5 sont-ils implémentés en utilisant des futex? Merci – Dima
Les futex ont été utilisés par pthreads sur toutes les distributions de Linux depuis environ 2004, quand les noyaux de la série 2.6 ont été adoptés. Cela inclut CentOS. Je ne comprends pas pourquoi vous devez vous inquiéter d'eux, cependant ... ils sont en grande partie un détail de mise en œuvre. – Doug
parce que j'ai besoin d'utiliser des verrous dans le chemin très critique de l'application serveur (l'endroit où toutes les données sont passées). Je pense qu'il est préférable d'utiliser un mécanisme de verrouillage "rapide" ... – Dima