Python création d'une variable partagée entre les threads
Je suis en train de travailler sur un projet en Python à l'aide de la "thread" module.
Comment puis-je faire une variable globale (dans mon cas, j'ai besoin c'est d'être Vrai ou Faux) que tous les threads dans mon projet (4 à 6) peuvent accéder?
De quoi êtes-vous en train d'essayer de faire? Si vous voulez une sorte de "keepRunning" variable, il peut y avoir de meilleures façons que mondial
Qu'avez-vous essayé? Bref des exemples de code de ce qui n'a pas de travail sont toujours très utiles lors de la recherche d'une réponse à votre question.
Êtes-vous juste de demander comment faire un mondial? Déclarer au niveau du module, puis utiliser le
Ne pas utiliser le
Qu'avez-vous essayé? Bref des exemples de code de ce qui n'a pas de travail sont toujours très utiles lors de la recherche d'une réponse à votre question.
Êtes-vous juste de demander comment faire un mondial? Déclarer au niveau du module, puis utiliser le
global
mot-clé dans les defs pour y accéder.Ne pas utiliser le
thread
module. Au lieu de cela, utilisez la threading
module.
OriginalL'auteur Shay | 2013-07-21
Vous devez vous connecter pour publier un commentaire.
Nous pouvons définir la variable à l'extérieur du filetage de classes et de la déclarer en global dans les méthodes de la classes.
Veuillez voir ci-dessous exemple trivial qui imprime AB alternativement. Deux variables
flag
etval
sont partagés entre deux threadsThread_A
etThread_B
.Thread_A
imprimeval=20
et puis définitval
à 30.Thread_B
imprimeval=30
, depuisval
est modifié dansThread_A
.Thread_B
définit ensuiteval
à 20, qui est de nouveau utilisé dansThread_A
. Cela démontre que la variableval
est partagé entre deux threads. De la même façon variableflag
est également partagé entre les deux threads.De sortie ressemble à
Chaque thread imprime la valeur qui a été modifié dans un autre thread.
c
(lethreading.Condition()
) défini commeglobal
?OriginalL'auteur user3343166
Avec aucune idée de ce que vous êtes vraiment en train de faire, soit aller avec nio de l'approche et l'utilisation des verrous, ou de considérer les variables de condition:
De la docs
Vous pouvez l'utiliser pour permettre à un thread dire à l'autre qu'une condition a été remplie, sans avoir à réfléchir sur les serrures de manière explicite. Cet exemple utilise
cv
pour indiquer que l'article est disponible.OriginalL'auteur doctorlove