Ist der folgende Code korrekt? (Es initialisiert ein Objekt, das einen Thread in seinem Konstruktor startet, um seinen Zustand zu ändern).Klassenattribute zwischen Threads teilen
import threading
import time
class Test():
def __init__(self):
self.a = False
def workload():
self.a = True
self.thread = threading.Thread(target = workload)
self.thread.start()
def display(self):
print self.a
test = Test()
while True:
test.display()
time.sleep(0.1)
Es gibt Wahre aber ich habe einen komplexere Testfall (das kann nicht einfach hier wiedergegeben werden) Workload tut viel komplexe Sachen (unter Einbeziehung schlafen, Gegenstände von einem Manager Queue Abrufen) und wo das Programm gibt nie True aus - obwohl sich der Wert self.a innerhalb der Workload-Funktion ändert. Erstellt Python temporäre Kopien von gemeinsamen Werten zwischen Haupt- und untergeordneten Threads und "synchronisiert" sich regelmäßig oder liegt das Problem an anderer Stelle?