ich habe eine (vermutlich total dämliche ) Frage zu Threads. Ich benutze das threading Modul und habe in meinem main-Thread verschiedene Datenstrukturen. Die aufgerufenen Threads sollen nun diese Datenstrukturen verändern. Das ich da mit locks arbeiten muss ist mir schon klar. Was ich nicht verstehe ist: Wie übergebe ich die zu ändernden Datenstrukturen am geschicktesten an die Threads ohne eine Kopie anzufertigen. Der main-Thread soll also immer auf die aktuellen Daten zugreifen können. Zumindest solange kein anderer Thread gerade was an Ihnen verändert. Unter c würde ich da jetzt einfach einen Pointer verwenden, aber wie funktioniert das unter Python?
Ich hoffe mal ich habe mich einigermaßen verständlich ausgedrückt?!
Das ganze sieht stark verkürzt so aus (das hier soll nur mein Problem verdeutlichen und erhebt keinen Anspruch auf Lauffähigkeit ):
Code: Alles auswählen
import threading
import time
class foo( threading.Thread ):
def run(self):
while True :
#hole daten vom netzwerk und schreibe sie in liste aus dem main-thread
time.sleep(60)
liste = []
bar = foo()
bar.start()
while True:
#arbeite mit den akutellen daten aus der liste