|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par Jean-Michel, 12 oct. 2015 06:34 - 3 réponses |
| |
| | | |
|
| |
Membre enregistré 856 messages |
|
| Posté le 12 octobre 2015 - 06:34 |
Bonjour, En lisant les nouveautés de la version 21, je tombe la dessus :

De quelle protection ? Mes variables en Thread secondaire doivent être protégées de quoi ??? Et comment ???
-- Synchronize Systems International LTD Développement d'outils de gestion
Environnements AS400 – Windows Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev http://www.cashpower.fr/
Bangkok / Pattaya |
| |
| |
| | | |
|
| | |
| |
| Posté le 12 octobre 2015 - 09:43 |
Jean-Michel a écrit :
Bonjour, En lisant les nouveautés de la version 21, je tombe la dessus :

De quelle protection ? Mes variables en Thread secondaire doivent être protégées de quoi ??? Et comment ???
voir sectioncritique
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
| Posté le 12 octobre 2015 - 14:15 |
Bonjour,
lorsque des variables globales ou des objets dynamiques sont utilisés dans une ou plusieurs procédures qui sont utilisées par plusieurs threads, il faut protéger l'accès au variable.
par exemple, on a deux procédures et deux thread pour gérer une division.
DiviseurGlobal est un entier ResultatDivision est un entier
Procedure ModifierDiviseur(pDiviseur est un entier) DiviseurGlobal = pDiviseur
Procedure Diviser(pNombre est un entier) SI DiviseurGlobal <> 0 ALORS ResultatDivision = pNombre / DiviseurGlobal FIN
Le thread 1 se charge d'appeler ModifierDiviseur en boucle et le thread2 se charge d'appeler Diviser en boucle. De temps à autre, le thread1 appelle ModifierDiviseur avec zero en paramètre.
Avec une gestion des sections critiques, tout devrait bien se passer. Mais sans, il est possible que la valeur de DiviseurGlobal change en plein milieu du traitement Diviser, car Thread1 l'aura appelé. Et si Thread1 appelle ModifierDiviseur(0) en plein milieu de Diviser, on aura une division par zéro et donc un plantage.
C'est une simplification du pourquoi des sections critiques (ou sémaphore), mais c'est une notion à bien prendre en compte lors de l'utilisation de thread. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 148 messages |
|
| Posté le 12 octobre 2015 - 15:55 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|