Code: Alles auswählen
from time import sleep
from threading import Thread
class Counter(Thread):
def __init__(self, duration, max_count):
Thread.__init__(self)
self.duration = duration
self.max_count = max_count
def run(self):
for count in xrange(self.max_count):
print 'counter %s: %d' % (self.getName(), count)
sleep(self.duration)
def main():
counter = Counter(0.2, 10)
counter.start()
1) Worin besteht genau der Vorteil beim Benutzen von `Thread`? Ich könnte doch auch eine Klasse schreiben, die einfach nur `sleep()` nutzt.
2) in `main()` startest du die Methode `start()`. Gibt's in deiner Counter-Klasse nicht -> ist die von `Thread` geerbt?
Ich brauche auch gerade sowas wie `setInterval()`, das es ja auch bei JavaScript gibt. Es funktioniert so, dass man den Namen einer Funktion und die Verzögerung in Millisekunden angibt. Optional kann man auch noch Parameter an die Funktion überreichen. Flash und JS unterscheiden sich da etwas von der Syntax...
Jedenfalls liefert `setInterval()` eine Ganzzahl zurück, die während der gesamten Laufzeit einmalig ist (also eine ID). Wenn man die Schleife beenden möchte, nutzt man:
Code: Alles auswählen
intervalID = setInterval(trace, 200, this);
// later...
if (condition) {
clearInterval(intervalID);
}
Käme es dem gleich, wenn ich nun in der Counter-Klasse ein `self.stop = False` hinzufüge, dass ich irgendwann auf False setze? Ein `max_count` benötige ich nämlich nicht.