Différence entre les Serrures, les Mutex et les Sections Critiques
Il existe une question concernant la différence entre les Mutex et de la section Critique, mais il ne traite pas avec des Serrures également.
Donc je veux savoir si les sections Critiques peut être utilisé pour le fil de synchronisation entre les processus.
Aussi ce qui est signifié par manifesté et non-manifesté états
Ils sont la même chose pour moi, ma conjecture est que vous êtes en utilisant une bibliothèque qui en fait une certaine différence entre les trois (Win32?).
Dites-vous que les Verrous comme CSingleLock prend également en charge de threads synchronisation quand il s'agit de fil à travers le processus. Je ne pensais qu'à Mutex prend en charge. S'il vous plaît corrigez-moi si je me trompe
Dites-vous que les Verrous comme CSingleLock prend également en charge de threads synchronisation quand il s'agit de fil à travers le processus. Je ne pensais qu'à Mutex prend en charge. S'il vous plaît corrigez-moi si je me trompe
OriginalL'auteur ckv | 2010-05-11
Vous devez vous connecter pour publier un commentaire.
Dans Windows sections critiques sont la plupart du temps mis en œuvre dans le mode utilisateur, et un mutex va changer de contexte pour le mode noyau (qui est lent). Si un thread se termine alors que la possession d'un mutex, le mutex est dit être abandonné. L'état de l'mutex est définie comme signalé, et le prochain thread en attente obtient la propriété. Dans la même situation avec une section critique de tous les autres threads restera bloquée. Les sections critiques ne peut pas être appelé si vous ne pouvez pas les utiliser pour synchroniser plusieurs processus.
OriginalL'auteur Kirill V. Lyadvinsky
Sections critiques ne sont pas les objets du noyau. Ils ne sont pas identifiés avec une Poignée. Ils peuvent être uniquement utilisé pour synchroniser les threads appartenant à un même processus. Ils ne peuvent pas être utilisés pour la synchronisation à travers le processus.
CSingleLock ( je suppose que vous faites référence à ce qu'un verrou, dans ce contexte) est une classe wrapper à l'aide de RAII concept. Il vous aide à acquérir la synchronisation des threads objet (dans son constructeur) et appel de Verrouillage et de Déverrouillage de l'API dans un moyen facile. ( en cachant tous les détails internes de laquelle les objets de synchronisation, il est utilisé).
CSingleLock lorsqu'il est utilisé avec des sections Critiques, ne peut pas être utilisé au-delà du processus. Où que Mutex peut être utilisé à cette fin.
Lorsqu'un thread acquiert Mutex et aucun autre thread ne peut acquérir le Mutex, l'état de la Mutex est dit être en situation de Non-Signeled état.
SI le Mutex est disponible et aucun fils ont acquis, alors c'est en Signeled état.
OriginalL'auteur aJ.
CriticalSections sont en cours. Nommé mutex peut être utilisé dans les processus de
Lock est un terme général et en tant que tel, je ne sais pas quelle plate-forme que vous voulez dire. Par exemple en C# d'un verrou primitive est une Section Critique.
OriginalL'auteur Preet Sangha
1) de la Section Critique est le pont entre l'Utilisateur et Antifatigue-opérations. Il utilise inetrlocked de l'échange des opérations de verrouiller et de déverrouiller votre fils. Il fonctionne plus rapidement que le mutex.
2) Mutex est un kernel objet. Il fonctionne pas rapide, mais il a quelques avantages. Tout d'abord, nommé mutex peut être utilisé sur des processus. Deuxièmement, si le thread est terminé alors mutex est verrouillé par ce fil est déverrouillé.
OriginalL'auteur Alexey Malistov