UnlockMutex()

Syntaxe

UnlockMutex(Mutex)
Description
Déverrouille un mutex préalablement verrouillé avec LockMutex().

Arguments

Mutex Le mutex à déverrouiller.

Valeur de retour

Aucune.

Remarques

Un mutex ne peut être déverrouillé que par le thread qui l'a bloqué.

Exemple

  ; Exécutez ce programme une fois comme il se présente. 
  ; Vous verrez que les lignes imprimées seront
  ; mélangées entre les threads. Puis supprimez 
  ; les commentaires devant les commandes de Mutex
  ; et les chaînes seront imprimées dans l'ordre, 
  ; car un seul thread à la fois sera autorisé 
  ; à exécuter les commandes d'impression.
  ;
  Procedure SansMutex(*Numero)     
    Shared Mutex
    
    For a = 1 To 5      
      ;LockMutex(Mutex)    ; supprimez le commentaire pour voir la différence
    
      PrintN("Thread "+Str(*Numero)+" essaie d'imprimer 5 fois a la suite :")
      For b = 1 To 5
        Delay(50)
        PrintN("Thread "+Str(*Numero)+" Ligne "+Str(b))
      Next b          
      
      ;UnlockMutex(Mutex)  ; supprimez le commentaire pour voir la différence
    Next a    
  EndProcedure
  
  OpenConsole()
  Mutex = CreateMutex()
  
  thread1 = CreateThread(@SansMutex(), 1)
  Delay(25)
  thread2 = CreateThread(@SansMutex(), 2)
  Delay(25)
  thread3 = CreateThread(@SansMutex(), 3)
  
  WaitThread(thread1)
  WaitThread(thread2)
  WaitThread(thread3)
  
  Input()

Voir aussi

LockMutex(), TryLockMutex(), CreateMutex()

OS Supportés

Tous

<- TrySemaphore() - Thread Index - WaitSemaphore() ->