Les Snippets

Connexion

Synchronisation par exclusion mutuelle (mutex)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/07/2010 11:45:54 et initié par Bacterius [Liste]
Vue : 3123
Catégorie(s) : Trucs & Astuces, Divers
Langages dispo pour ce code :
- Delphi 5



Langage : Delphi 5
Date ajout : 26/07/2010
Posté par Bacterius [Liste]
// pour créer un mutex, déclarez une variable de type Boolean (initialisée à False)
// routine pour prendre la main dès que possible
procedure RequestMutex(var Mutex: Boolean);
begin
 repeat until not Mutex;
 Mutex := True;
end;
// routine pour laisser la main
procedure ReleaseMutex(var Mutex: Boolean);
begin
 Mutex := False;
end;
// utilisation
begin
 RequestMutex(MutexDonnee);
 // modifier la donnée, on est tranquilles ici
 ReleaseMutex(MutexDonnee);
end;
// Avertissement : si ReleaseMutex n'est pas appellée à chaque fois, la donnée sera verrouillée, soyez donc certains de votre coup sinon ça reste coincé !

Remarque :
Parfois il est nécessaire de synchroniser une donnée pour éviter qu'elle ne soit lue et écrite en même temps, ce qui peut poser pas mal de problèmes, en particulier lorsqu'on jongle avec plein de threads en même temps. Ceci est une solution simple, qui assure qu'une donnée protégée par le mutex ne peut être accédée qu'une fois à un moment donné. En revanche cette méthode ne permet pas de contrôler l'ordre d'accès.



Codes sources en rapport avec : Mutex, Exclusion, Mutuelle, Synchronisation, Synchronization

{C# / C#.NET} MECANISME DE SYNCHRONISATION DE THREAD - MONITOR, MUTEX, SEMAPHORE, RESETEVENT
Cette source contient des exemples sur l'utilisation des différents mécanismes de synchronisation en...

{Delphi} SYNCHRONISATION DE THREADS DANS DES DLL
Bonjour, Voici une petite unité qui peut s'averer tres pratique lorsque l'on a besoin de creer de...

{PHP} SQLDIFF : MIGRATION, VERSIONNING ET SYNCHRONISATION DE LA STRUCTURE DE BASES MYSQL
Cette source vous permet de versionner ou synchroniser la structure de deux bases mysql en générant ...

{Python} SYNCHRONISATION DE RÉPERTOIRES
Pour résumer rapidement, ce petit programme en python synchronise des dossiers de sauvegarde et des ...

{Visual Basic, VB6, VB.NET, VB 2005} XRCOPY - UNE SORTE DE SYNCHRONISATION DE RÉPERTOIRES
A la demande d'un admin. réseau, j'ai écrit un programme VB qui, en ligne de commande, permet de cop...

{Visual Basic, VB6, VB.NET, VB 2005} [VB6] YMXPLORER : DOUBLE EXPLORATEUR DE FICHIERS
Double explorateur de fichiers, DragDrop dans les MSHFlexGrid, Fonctions de remplacement (voir ma ...

{Delphi} SYNCHRONISATION-FICHIERS (MODIFICATION DE TIGRIS1)
TIGRIS a écrit: "Il y a encore beaucoup de fonctions qui peuvent être ajoutées et il n'est pas im...

{Delphi} SYNCHRONISATION DE FICHIERS
Bonjour, Le programme de synchronisation de répertoires posté par akilavaca m'a donné des idées e...

{JAVA / J2EE} SIMULATION D'UNE CHAINE DE PRODUCTION
Une petite source sans prétention d'un débutant en Java (en formation d'ailleurs) qui simule le fonc...

{JAVA / J2EE} SYNCHRONISATION PAR SÉMAPHORE
Alors voila, c'est un programme simple qui montre l'utilisation d'une sémaphore pour la synchronisat...