2010-09-24 3 views

Répondre

3

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).

+0

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

+0

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

+0

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

-1

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.

Questions connexes