Voici le code qui illustre le problème. S'il vous plaît noter que ce n'est qu'un exemple, j'utilise la même logique dans une application plus compliquée, où je ne peux pas utiliser le sommeil comme la quantité de temps, il faudra pour processus1 pour modifier la variable, dépend de la vitesse de la connexion internet.Comment modifier une variable dans un thread et le vérifier dans un autre?
from multiprocessing import Process
code = False
def func():
global code
code = True
pro = Process(target=func)
pro.start()
while code == False:
pass
pro.terminate()
pro.join()
print('Done!')
En cours d'exécution, rien n'apparaît à l'écran. Lorsque je termine le programme, en appuyant sur CTRL-C, la trace de la pile montre que la boucle while était en cours d'exécution.
Les processus ne sont pas des threads. Ce processus définit sa propre variable globale indépendante. Si vous voulez communiquer entre les processus 'multiprocessing', utilisez les outils' multiprocessing' fournis et les documents. – user2357112
@ user2357112 Cette question peut-elle être marquée comme doublon pour: [Variable partagée dans le multitraitement de python] (http://stackoverflow.com/questions/17377426/shared-variable-in-pythons-multiprocessing)? J'ai besoin d'un deuxième avis –
@ user2357112 Pouvez-vous s'il vous plaît donner un exemple de code? –