funktionen in klassen / threads: mache ich das richtig?
Verfasst: Donnerstag 14. Juni 2007, 19:29
Hallo,
ich kommen manchmal noch etwas durcheinander mit dem 'self' in klassen, und versuche mich ausserdem grad mit threads - ich habe hier das folgende:
Ich habe es noch nicht ausprobieren können, weil mein ganzes programm drumrum noch weit von fertig ist - wollte nur schonmal wissen ob das so die Art ist wie man sowas machen würde? Also speziell im Hinblick auf die Benutzung des lock, und auf die Art wie ich die funktion 'thread' in die andere Funktion eingebaut habe (also ob alle 'self' da sind wo sie hingehören bzw, da _nicht_ sind wo sie auch nicht hingehören...)
Von aussen hätte ich dann eine Liste mit markets, und für jeden würde ich einmal xyz.marketThread aufrufen.
Achja, für den Fall das ich das mit dem lock _völlig_ falsch verstanden habe: Der Sinn soll sein, dass nicht zwei threads gleichzeitig 'self.daten' zu ändern versuchen, weil ich mir denke dass man das vielleicht nicht machen sollte?
Vielen Dank für eure Hilfe,
Jo
ich kommen manchmal noch etwas durcheinander mit dem 'self' in klassen, und versuche mich ausserdem grad mit threads - ich habe hier das folgende:
Code: Alles auswählen
class xyz:
def __init__(self):
self.threadLock = 0
self.daten = list()
# ...
def updateMarketPrices(self, market):
for i in self.daten:
# daten modifizieren
# ...
return
def marketThread(self, market, timer):
def thread(market, timer, lock):
lock.acquire()
self.updateMarketPrices(market)
lock.release()
time.sleep(timer)
if self.threadLock == 0:
self.threadLock = thread.allocate_lock()
thread.start_new_thread(thread, market, timer, self.threadLock)
Von aussen hätte ich dann eine Liste mit markets, und für jeden würde ich einmal xyz.marketThread aufrufen.
Achja, für den Fall das ich das mit dem lock _völlig_ falsch verstanden habe: Der Sinn soll sein, dass nicht zwei threads gleichzeitig 'self.daten' zu ändern versuchen, weil ich mir denke dass man das vielleicht nicht machen sollte?
Vielen Dank für eure Hilfe,
Jo